先设定好我们的dataframe:
# pandas 设置特定的值 dates=pd.date_range(‘20130101‘,periods=6) # print(dates) df=pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=[‘a‘,‘b‘,‘c‘,‘d‘]) print(df)
结果:
a b c d 2013-01-01 0 1 2 3 2013-01-02 4 5 6 7 2013-01-03 8 9 10 11 2013-01-04 12 13 14 15 2013-01-05 16 17 18 19 2013-01-06 20 21 22 23
一、修改特定的数据
1.1分别根据索引和行(列)号来修改特定的值
df.iloc[2,2]=1111 #第二列第二行的数据 改为1111 print(df) df.loc[‘20130101‘,‘b‘]=2222 print(df)
结果:
a b c d 2013-01-01 0 2222 2 3 2013-01-02 4 5 6 7 2013-01-03 8 9 1111 11 2013-01-04 12 13 14 15 2013-01-05 16 17 18 19 2013-01-06 20 21 22 23
1.2对特定的行进行筛选操作
df[df.a>4]=0 #这个是指 a这一列 只要是大于4的 其所在的行全部变为0 print(df)
结果:
a b c d 2013-01-01 0 1 2 3 2013-01-02 4 5 6 7 2013-01-03 0 0 0 0 2013-01-04 0 0 0 0 2013-01-05 0 0 0 0 2013-01-06 0 0 0 0
1.3对特定的列进行筛选操作:
df.a[df.a>4]=0#这个是只更改某一列 print(df)
结果
a b c d 2013-01-01 0 1 2 3 2013-01-02 4 5 6 7 2013-01-03 0 9 10 11 2013-01-04 0 13 14 15 2013-01-05 0 17 18 19 2013-01-06 0 21 22 23
二、增加一个列
#datafame 加一个空的行 df[‘f‘]=np.nan print(df) #这个是增加一个有内容的行 df[‘e‘]=pd.Series([1,2,3,4,5,6],index=pd.date_range(‘20130101‘,periods=6)) print(df)
结果:
a b c d f e 2013-01-01 0 1 2 3 NaN 1 2013-01-02 4 5 6 7 NaN 2 2013-01-03 8 9 10 11 NaN 3 2013-01-04 12 13 14 15 NaN 4 2013-01-05 16 17 18 19 NaN 5 2013-01-06 20 21 22 23 NaN 6
三、处理没有数据的部分
3.1设定丢失数据
# pandas处理没有数据的部分 dates=pd.date_range(‘20130101‘,periods=6) # print(dates) df=pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=[‘a‘,‘b‘,‘c‘,‘d‘]) print(df) df.iloc[0,1]=np.nan#设定丢失的数据 df.iloc[1,2]=np.nan print(df)
结果:
a b c d 2013-01-01 0 NaN 2.0 3 2013-01-02 4 5.0 NaN 7 2013-01-03 8 9.0 10.0 11 2013-01-04 12 13.0 14.0 15 2013-01-05 16 17.0 18.0 19 2013-01-06 20 21.0 22.0 23
3.2丢弃操作
丢弃特定的行
df=df.dropna(axis=0,how=‘any‘)#axis=0 表示行 how={‘any‘,‘all‘} print(df)
结果
a b c d 2013-01-03 8 9.0 10.0 11 2013-01-04 12 13.0 14.0 15 2013-01-05 16 17.0 18.0 19 2013-01-06 20 21.0 22.0 23
丢弃特定的列:
df=df.dropna(axis=1,how=‘any‘) print(df)
结果
a d 2013-01-01 0 3 2013-01-02 4 7 2013-01-03 8 11 2013-01-04 12 15 2013-01-05 16 19 2013-01-06 20 23
填充操作:
# 填充操作 df=df.fillna(value=2333) print(df)
结果:
a b c d 2013-01-01 0 2333.0 2.0 3 2013-01-02 4 5.0 2333.0 7 2013-01-03 8 9.0 10.0 11 2013-01-04 12 13.0 14.0 15 2013-01-05 16 17.0 18.0 19 2013-01-06 20 21.0 22.0 23
四、判断是否有缺失
# 判断是否有缺失 df=df.isnull() print(df) a=np.any(df.isnull()==True) print(a)
结果:
a b c d 2013-01-01 False True False False 2013-01-02 False False True False 2013-01-03 False False False False 2013-01-04 False False False False 2013-01-05 False False False False 2013-01-06 False False False False 直接确定是否有缺失的 True
原文地址:https://www.cnblogs.com/William-xh/p/9562691.html
时间: 2024-11-02 20:09:42