栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-从pandas.DataFrame使用复杂条件选择

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-从pandas.DataFrame使用复杂条件选择

当然!设定:

>>> import pandas as pd>>> from random import randint>>> df = pd.Dataframe({'A': [randint(1, 9) for x in range(10)],        'B': [randint(1, 9)*10 for x in range(10)],        'C': [randint(1, 9)*100 for x in range(10)]})>>> df   A   B    C0  9  40  3001  9  70  7002  5  70  9003  8  80  9004  7  50  2005  9  30  9006  2  80  7007  2  80  4008  5  80  3009  7  70  800

我们可以应用列操作并获取布尔系列对象:

>>> df["B"] > 500    False1     True2     True3     True4    False5    False6     True7     True8     True9     TrueName: B>>> (df["B"] > 50) & (df["C"] == 900)0    False1    False2     True3     True4    False5    False6    False7    False8    False9    False

[更新,切换到新样式.loc]:

然后,我们可以使用它们来索引对象。对于读取访问,可以链接索引:

>>> df["A"][(df["B"] > 50) & (df["C"] == 900)]2    53    8Name: A, dtype: int64

但是由于视图和执行写操作的副本之间的差异,您可能会遇到麻烦。您可以.loc改用:

>>> df.loc[(df["B"] > 50) & (df["C"] == 900), "A"]2    53    8Name: A, dtype: int64>>> df.loc[(df["B"] > 50) & (df["C"] == 900), "A"].valuesarray([5, 8], dtype=int64)>>> df.loc[(df["B"] > 50) & (df["C"] == 900), "A"] *= 1000>>> df      A   B    C0     9  40  3001     9  70  7002  5000  70  9003  8000  80  9004     7  50  2005     9  30  9006     2  80  7007     2  80  4008     5  80  3009     7  70  800

请注意,我不小心输入了== 900not != 900和或~(df[“C”] == 900),但我懒得修复它。为读者练习。:^)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号