当前位置 : 主页 > 编程语言 > python >

经常进行数据处理?这6个 Python 代码块值得收藏

来源:互联网 收集:自由互联 发布时间:2022-06-15
大家好,今天和大家 分享 自己总结的6个常用的 Python 数据处理代码,对于经常处理数据的coder最好熟练掌握。 选取有空值的行 在观察数据结构时,该方法可以快速定位存在缺失值的行


大家好,今天和大家分享自己总结的6个常用的 Python 数据处理代码,对于经常处理数据的coder最好熟练掌握。

选取有空值的行

在观察数据结构时,该方法可以快速定位存在缺失值的行。

df = pd.DataFrame({'A': [0, 1, 2],
'B': [0, 1, None],
'C': [0, None, 2]})
df[df.isnull().T.any()]

输出:

A B C A B C
0 0 0.0 0.0 1 1 1.0 NaN
1 1 1.0 NaN --> 2 2 NaN 2.0
2 2 NaN 2.0

快速替换列值

实际数据处理经常会根据一些限定条件来替换列中的值。

df = pd.DataFrame({'name':['Python', 'Java', 'C']})

# 第一种方式
df['name'].replace('Java', 'JavaScript', inplace=True)
# 第二种方式
df.loc[df['name'].str.contains('Java'), 'name'] = 'JavaScript'

输出:

name name
0 Python 0 Python
1 Java ---> 1 JavaScript
2 C 2 C

对列进行分区

很多情况下,对于数值类型的数据,我们需要分区来计算每个区间数据出现的频率。这时用 ​​pd.cut​​ 就能很好的解决这一问题。

import random

age = random.sample(range(90), 20)
cut_res = pd.cut(age, bins=[0, 18, 35, 60, 90])
# cut_res type:<class 'pandas.core.arrays.categorical.Categorical'>
cut_res.value_counts()

输出:

(0, 18] 6
(18, 35] 1
(35, 60] 6
(60, 90] 7

将一列分为多列

在文本数据清洗时,一些列中存在分隔符(‘’, ‘,’, ‘:’)分隔的值,我们只需将该列根据分隔符进行 ​​split​​ 即可。

import pandas as pd

df = pd.DataFrame({'address': ['四川省 成都市',
'湖北省 武汉市',
'浙江省 杭州市']})
res = df['address'].str.split(' ', expand=True)
res.columns = ['province', 'city']

输出:

province city
0 四川省 成都市
1 湖北省 武汉市
2 浙江省 杭州市

​​expand​​​参数选择是否扩展为 ​​DataFrame​​​,​​False​​​ 则返回 ​​Series​​

中文筛选

同样在清洗过程中,往往会出现一些不需要的中文字段,这时直接用 ​​str.contains​​ 筛选即可。

df = pd.DataFrame({'mobile_phone':
['15928765644',
'15567332235',
'暂无']})
df[~df['mobile_phone'].str.contains('[\u4e00-\u9fa5]')]

输出:

mobile_phone mobile_phone
0 15928765644 0 15928765644
1 15567332235 --> 1 15567332235
2 暂无

更改列的位置

有时我们需要调整列的位置,当数据列较少时,可以用下面的方式

df = pd.DataFrame({'name': ['A', 'B', 'C'],
'age': [10, 20, 30],
'gender': [0, 1, 0]})
df = df[['name', 'gender', 'age']]

输出:

name age gender name gender age
0 A 10 0 0 A 0 10
1 B 20 1 --> 1 B 1 20
2 C 30 0 2 C 0 30

如果列较多,那么,一个个列举出来会比较繁琐,推荐下面插入的方式。

col = df['gender']
df.drop('gender', axis=1, inplace=True)
df.insert(1, 'gender', col)

技术交流

欢迎载、收藏、有所收获点赞支持一下!

经常进行数据处理?这6个 Python 代码块值得收藏_pandas

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

经常进行数据处理?这6个 Python 代码块值得收藏_数据分析_02



网友评论