先设定好我们的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
Panda的学习之路(3)——pandas 设置特定的值&处理没有数据的部分
原文:https://www.cnblogs.com/William-xh/p/9562691.html