2024-05-17 16:36:08 发布
网友
假设我们在Python Pandas中有一个如下所示的数据帧:
df = pd.DataFrame({'vals': [1, 2, 3, 4], 'ids': [u'aball', u'bball', u'cnut', u'fball']})
或者,以表格形式:
ids vals aball 1 bball 2 cnut 3 fball 4
如何筛选包含关键字“ball”的行例如,输出应为:
ids vals aball 1 bball 2 fball 4
df[df['ids'].str.contains('ball', na = False)] # valid for (at least) pandas version 0.17.1
逐级解释(从内到外):
df['ids']
ids
pandas.Series
df['ids'].str
lower
contains
df['ids'].str.contains('ball')
True
False
df[df['ids'].str.contains('ball')]
na = False
In [3]: df[df['ids'].str.contains("ball")] Out[3]: ids vals 0 aball 1 1 bball 2 3 fball 4
>>> mask = df['ids'].str.contains('ball') >>> mask 0 True 1 True 2 False 3 True Name: ids, dtype: bool >>> df[mask] ids vals 0 aball 1 1 bball 2 3 fball 4
逐级解释(从内到外):
df['ids']
选择数据帧的ids
列(技术上,对象df['ids']
是pandas.Series
类型)df['ids'].str
允许我们对序列应用矢量化的字符串方法(例如,lower
,contains
)df['ids'].str.contains('ball')
检查序列中的每个元素,看元素值是否将字符串“ball”作为子字符串。其结果是一系列布尔值,表示存在“ball”子串的True
或False
。df[df['ids'].str.contains('ball')]
将布尔值“mask”应用于数据帧并返回包含适当记录的视图。na = False
从考虑中删除NA/NaN值;否则可能返回ValueError。相关问题 更多 >
编程相关推荐