pas*_*ssy 5 python filter pandas
假设我有一个包含一个列表或一组标签的 DataFrame,我想根据某个标签是否是该行的一部分来过滤 DataFrame,用 Pandas 实现这一点的最惯用的方法是什么?
import pandas as pd
df = pd.DataFrame({
'amount': [15, 20, 40],
'tags': [["Food", "Eating Out"], ["Food", "Groceries"], ["Clothes"]],
'description': ["Garfunkel's", "Tesco", "Hollister"]
})
Run Code Online (Sandbox Code Playgroud)
我有一段有效的代码,但编写起来相当笨拙:
criterion = lambda row: 'Food' in row['tags']
df[df.apply(criterion, axis=1)]
Run Code Online (Sandbox Code Playgroud)
结果应该是:
您只能将 alambda
应用于相关列,而不是整行:
df[df['tags'].map(lambda tags: 'Food' in tags)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2296 次 |
最近记录: |