Panda的学习之路——pandas 设置特定的值&处理没有数据的部分

Posted william-xh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Panda的学习之路——pandas 设置特定的值&处理没有数据的部分相关的知识,希望对你有一定的参考价值。

先设定好我们的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的学习之路——pandas 设置特定的值&处理没有数据的部分的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以在使用 python panda 时显示特定的单元格值以及标题和列值

Python Panda - 学习笔记

如何在panda中对行和多列进行迭代?

Panda .loc 或 .iloc 从数据集中选择列

panda迭代

利用python数据分析panda学习笔记之DataFrame