python学习笔记(pandas2)

一、dateframe的索引

pandas之loc与iloc(更多经过pandas优化过的选择方式:)

1、df.loc通过标签索引行数据

2、df.iloc通过位置获取行数据

# pandas优化过的处理方式
import numpy as np
import pandas as pd

a=pd.DataFrame(np.arange(12).reshape(3,4))
b=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("xyzp"))
print(b)
print(b.loc["a","x"])
print(b.loc["a",["x","p"]])
print(type(b.loc["a",["x","p"]]))
# : 在loc里面是闭合的,即会选到,冒号之后的数据
print(b.loc["a":"c",["x","z"]])
# 选取列
print(b.loc[["a","c"],:])
# 选取行
print(b.loc[:,["x","z"]])

"""
运行结果
   x  y   z   p
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
0
x    0
p    3
Name: a, dtype: int32
<class 'pandas.core.series.Series'>
   x   z
a  0   2
b  4   6
c  8  10
   x  y   z   p
a  0  1   2   3
c  8  9  10  11
   x   z
a  0   2
b  4   6
c  8  10
"""
import numpy as np
import pandas as pd
a=pd.DataFrame(np.arange(12).reshape(3,4))
b=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("xyzp"))
print(b)
print(b.iloc[1:3,[2,3]])
print(b.iloc[1,:])
print(b.iloc[:,2])
print(b.iloc[:,[2,1]])
print(b.iloc[[0,2],[2,1]])
print(b.iloc[1:,:2])
# 赋值更改数据
b.iloc[1:,:2]=30
print(b)
b.iloc[1:,:2]=np.nan
print(b)

"""
运行结果
   x  y   z   p
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
    z   p
b   6   7
c  10  11
x    4
y    5
z    6
p    7
Name: b, dtype: int32
a     2
b     6
c    10
Name: z, dtype: int32
    z  y
a   2  1
b   6  5
c  10  9
    z  y
a   2  1
c  10  9
   x  y
b  4  5
c  8  9
    x   y   z   p
a   0   1   2   3
b  30  30   6   7
c  30  30  10  11
     x    y   z   p
a  0.0  1.0   2   3
b  NaN  NaN   6   7
c  NaN  NaN  10  11
"""

二、bool索引和缺失数据的处理

1、bool索引

pandas之字符串方法

2、缺失数据的处理

数据缺失通常两种情况:

a、空,None等,在pandas是NaN(和np.nan)一样

b、我们让其为0

判断是否为NAN:pd.isnull(df).pd.notnull(df)

处理方式1:删除NaN所在的行列dropna(axis=0,how='any',inplace=False)

处理方式2:填充数据,t.fillna(t.mean()),t.fiallna(t.median()),t.fillna(0)

处理0的数据:t[t==0]=np.nan(不是每次为0都要处理,计算平均值等情况,nan是不参与计算的,但是0会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值