Pandas学习笔记(2)数据的处理方法

准备工作

创建一个6X4的DataFrame,行索引为时间序列,列索引为字母

dates = pd.date_range('20180205',periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),
     index=dates,columns=['A','B','C','D'])

outputs:
            A   B   C   D
2018-02-05  0   1   2   3
2018-02-06  4   5   6   7
2018-02-07  8   9   10  11
2018-02-08  12  13  14  15
2018-02-09  16  17  18  19
2018-02-10  20  21  22  23

数据的选取

按行列选取元素

以下两种方式可选取带索引的单列元素

df[A]
df.A   #返回列标为A的元素 (Series形式)

output:
2018-02-05     0
2018-02-06     4
2018-02-07     8
2018-02-08    12
2018-02-09    16
2018-02-10    20
Freq: D, Name: A, dtype: int32

选择多行元素

df[0:3]
df[20180205:20180208]   #返回前4行元素(DataFrame形式)

output:
            A   B   C   D
2018-02-05  0   1   2   3
2018-02-06  4   5   6   7
2018-02-07  8   9   10  11
loc

更加一般地,可以使用loc方法选取任意行列

df.loc['20180205']   #返回所在标签的行/列

output:
A    0
B    1
C    2
D    3
Name: 2018-02-05 00:00:00, dtype: int32

df.loc['20180205',['A','B']]  #对列作限定

output:
A    0
B    1
Name: 2018-02-05 00:00:00, dtype: int32
iloc

iloc可按位置精确切割选取DataFrameoutputs

df.iloc[3:5,1:3]   #选取3~5行,1~3列

output:
            A   B   C   D
2018-02-08  12  13  14  15
2018-02-09  16  17  18  19

参数1指定行,参数2指定列,缺省用:表示选取全部
跳选使用形如[1,3,5]的参数

基于比较的选择

可按设置条件选择数据

df[df.A<10]   #选择列标A小于10的数据块

output:
            A   B   C   D
2018-02-05  0   1   2   3
2018-02-06  4   5   6   7
2018-02-07  8   9   10  11

数据的修改

在选定数据后,可以通过简单的赋值来修改所选中部分的值

df.A = 0    #将A列的所有元素都修改为0

可以添加新的列

df.E = 0   #追加全0列E

若是已经确定的Series则需保证长度对齐

缺失值的处理

初始数据为非数或缺失的部分,在转化为DataFrame时用NaN(Not a Number)表示,对于NaN类型的数据,在分析时常常要对其进行处理,Pandas提供了相应的处理方式

pd.fillna()

使用指定参数代替非数值

df.fillna(value=0)   #value指定值替换所有NaN
pd.dropna()

删去带有缺失值的数据项

df.dropna(axis=0,how='any')

可选参数:

  • axis =0:仅对行 =1:仅对列
  • how =’any’ 默认 =’all’ 仅全空
pd.isnull()

返回一个同尺寸的DataFrame,元素为True/False,用来检测非数位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值