python - 数据框:根据值应用于两列
问题描述
假设我有一个简单的数据框,例如:
import pandas as pd
data = {'letters' : ['a','b','c','d','e'], 'numbers' :[1,2,3,4,5]}
df = pd.DataFrame(data)
该表看起来像这个
简单的数据框
现在说我有一个简短的列表, to_remove = ['b','d']
我怎样才能找到我的数据框中的行,其中“字母”列的值在“to_remove”中,并将“字母”和“数字”中的这一行都修改为无?所以我留下
了 1
无 无
c 3
无 无
e 5
一直在寻找几个小时。谢谢你!!
解决方案
to_remove = ['b','d']
df.loc[df['letters'].isin(to_remove), ['letters','numbers']] = None
#all columns
#df.loc[df['letters'].isin(to_remove)] = None
print (df)
letters numbers
0 a 1.0
1 None NaN
2 c 3.0
3 None NaN
4 e 5.0
如果想要boolean indexing
通过反转布尔掩码来过滤行~
:
df1 = df.loc[~df['letters'].isin(to_remove)]
print (df1)
letters numbers
0 a 1
2 c 3
4 e 5
推荐阅读
- python - Python Selenium:如何单击复选框的空白文本?
- c# - 在 Visual Studio(不是 VS Code)中为 C# 代码添加自定义缩进
- amazon-web-services - API 网关与 Lambda 和 DynamoDB 的集成
- anylogic - 任何逻辑的统计数据
- awk - awk 为测试元素创建一个列表
- django - 'str' 和 'int' 的实例之间不支持 /formpage '>' 处的 TypeError 错误也特定于 form.is_valid
- git - 从存储库推送和拉取
- r - 努力理解 Q1 计算
- python - 使用 Python Beautiful Soup 在 Web 抓取中提取价值
- python - 检查numpy数组窗口中的元素是否有限的更快方法