一 、Pandas 选择数据
简单的筛选
1 | dates = pd.date_range('20130101',periods=6) |
多行
1 | #多行 |
根据标签 loc
通过横纵轴的 标签 来选择
1 | print(df.loc['20130102']) #默认是根据横轴的 标签 查找 |
根据序列 iloc
通过横纵轴的序列来选择,0-n。可以选某一个确切的 value,也可以连续选或者跨行选。如果 iloc 里面的参数是一个范围 : 或者 list 形式 print 的时候就会把 indx带上。
1 | print(df.iloc[3,1]) # 13 |
混合选择 ix
既可以通过标签,也可以通过 序列来选择
通过判断的筛选
采用判断指令 (Boolean indexing) 进行选择
1 | print(df[df.A>8]) # 输出 type为 A 大于 8 的数据 |
二 、Pandas 设置值
根据位置设置 loc 和 iloc
1 | #利用索引或者标签确定需要修改值的位置 |
根据条件设置
设置当 A 成立的时候,修改 B 的值。
1 | df.B[df.A>4] = 0 |
按行或列设置
如果对整列做批处理, 加上一列 ‘F’, 并将 F 列全改为 NaN。也可以加上 Series
序列(但是长度必须对齐)。
1 | df['F'] = np.nan |
三 、Pandas 处理丢失数据
去掉有 NaN 的行或列
1 | #去掉有 NaN 的行或列, 可以使用 `dropna` |
将 NaN
的值用其他值代替
1 | # 将所有的 NAN 代替为 0 |
判断是否有缺失数据 NaN
1 | # 如果有缺省值 NAN ,为 True 表示数据 |