Pandas怎样实现数据选取,替换,修改等处理
Admin 2022-09-13 群英技术资讯 333 次浏览
在观察数据结构时,该方法可以快速定位存在缺失值的行。
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)
这就是今天分享的主要内容,实践永远是最好的学习方式,记忆的也更牢固。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
这篇文章主要介绍了Python Opencv中基础的知识点,主要包括创建窗口、保存图片、采集视频、鼠标控制的代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了python图像处理-利用一行代码实现灰度图抠图,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了Python 读取.txt,.md等文本文件的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了python使用OpenCV获取高动态范围成像HDR,如何使用不同曝光设置拍摄的多张图像创建高动态范围图像HDR,下文吗更详细的内容介绍,需要的小伙伴可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008