前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pandas数据处理的一些技巧

pandas数据处理的一些技巧

作者头像
小末快跑
发布2019-10-24 14:48:01
3470
发布2019-10-24 14:48:01
举报
文章被收录于专栏:日常撸知识

一、调整列的顺序:

初始列的顺序为:A, D, B, F, C, E

想要的顺序为:A, B, C, D, E, F

order=['A','B','C','D','E','F']

data=data[order]

二、数据矩阵中,某列有一些行的数据为空,需要删除数据中该列数据为空的行。

代码语言:javascript
复制
import numpy as np
import pandas as pd

A=['AA','AA','BB','BB','CC','CC','DD','DD']
C=['A1','A2','A3','A4','A5','A6','A7','A8']
B=['cd','sd',np.nan,'fr','rt','rtg','yju','ko']
D=[11,12,13,14,17,18,22,44]
F=[1,2,1,4,1,8,2,4]
data=pd.DataFrame()
data['A']=A
data['C']=B
data['B']=C
data['D']=D
data['F']=F
print(data)

结果为:

代码语言:javascript
复制
    A    C   B   D  F
0  AA   cd  A1  11  1
1  AA   sd  A2  12  2
2  BB  NaN  A3  13  1
3  BB   fr  A4  14  4
4  CC   rt  A5  17  1
5  CC  rtg  A6  18  8
6  DD  yju  A7  22  2
7  DD   ko  A8  44  4

C列第三行为空, 删除数据的第三行:

代码语言:javascript
复制
data=data.dropna(subset=['C'])
print(data)

结果为:

代码语言:javascript
复制
    A    C   B   D  F
0  AA   cd  A1  11  1
1  AA   sd  A2  12  2
3  BB   fr  A4  14  4
4  CC   rt  A5  17  1
5  CC  rtg  A6  18  8
6  DD  yju  A7  22  2
7  DD   ko  A8  44  4

三、如果某一列的某行包含某一数据,则取出该行数据,组成数据集。

取出数据中A列里包含'AA'和'CC'的数据:

代码语言:javascript
复制
data_1=data[data['A'].isin(['AA','BB'])]

print(data_1)

结果为:

代码语言:javascript
复制
    A    C   B   D  F
0  AA   cd  A1  11  1
1  AA   sd  A2  12  2
2  BB  NaN  A3  13  1
3  BB   fr  A4  14  4

四、取出数据数据集:如果某列包含某一数据,则去除该行。

代码语言:javascript
复制
data_1=data[~data['A'].isin(['AA','BB'])]

print(data_1)

结果为:

代码语言:javascript
复制
    A    C   B   D  F
4  CC   rt  A5  17  1
5  CC  rtg  A6  18  8
6  DD  yju  A7  22  2
7  DD   ko  A8  44  4

五,删除数据中重复的数据。

代码语言:javascript
复制
data=data.drop_duplicates()

六、对列名称重命名。

将'A1'重命名为'B1','C1'重命名为'C1'.

代码语言:javascript
复制
data=data.rename(columns={'A1':'B1','C':'C1'})

七、缺失值处理。

返回每列空值的数目:

代码语言:javascript
复制
data.isna().sum()

返回数据集中空值的总数:

代码语言:javascript
复制
data.isna().sum().sum()

填充空值,inplace=True表示对原数据修改:

代码语言:javascript
复制
data.fillna(value=2,inplace=True)

对指定列进行缺失值处理:

代码语言:javascript
复制
data['C'].fillna(value=2,inplace=True)
代码语言:javascript
复制
data[['B','C']].fillna(value=2,inplace=True)

用上一个有效值填补当前缺失值:

代码语言:javascript
复制
data['C'].ffill(inplace=True)

用下一个有效值填补当前缺失值:

代码语言:javascript
复制
data['C'].bfill(inplace=True)

用平均值来填补缺失值:

代码语言:javascript
复制
data['C'].fillna(data['C'].mean(),inplace=True)

八、数据分箱:按照某种规则对数据进行分类

代码语言:javascript
复制
data['labels']=pd.cut(data['Score'],labels=score_label,bins=Range,include_lowest=True)

结果为:

代码语言:javascript
复制
    A    B    C  Score      labels
0  AA   A1   cd     11  Just so so
1  AA   A2   sd     12  Just so so
2  BB   A3  NaN     13  Just so so
3  BB  NaN   fr     14        Good
4  CC   A5   rt     17        Good
5  CC   A6  rtg     18        Good
6  DD   A7  yju     22        Nice
7  DD   A8   ko     44        Nice

九、iloc, loc, ix的区别。

iloc用数字来索引数据,不能使用字符型标签来索引数据;

loc只能使用字符型标签来索引数据,不能使用数字来索引数据。但是标签本身是数字,则可以用数字来索引;

ix是一种混合索引,字符型标签和数字索引都可以使用。

-----TBD----

Keep your young heart after you go a long way

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小末快跑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档