首页 > 解决方案 > 将列表传递给 pandas loc 方法

问题描述

我想更改熊猫数据框中某些列的值。但是如果我在里面传递一个列列表,我似乎做不到loc

df = pd.DataFrame({
"ID" : [1, 2, 3, 4, 5],
"QA_needed" : [0, 1, 1, 0, 1],
"QC_needed" : [1, 0, 1, 0, 0],
"Report_needed" : [1, 1, 1, 0, 1]
})

df.loc[:, ["QA_needed", "Report_needed"]].replace({1: "True", 0: "False"}, inplace=True)

为此,我必须单独替换每列的值

df.loc[:, "QA_needed"].replace({1: "True", 0: "False"}, inplace=True)
df.loc[:, "QC_needed"].replace({1: "True", 0: "False"}, inplace=True)

有没有办法将列表传递["QA_needed", "Report_needed"]loc方法?

标签: pythonpandasdataframepandas-loc

解决方案


尝试update

df.update(df.loc[:, ["QA_needed", "Report_needed"]].replace({1: "True", 0: "False"}))
df
Out[96]: 
   ID QA_needed  QC_needed Report_needed
0   1     False          1          True
1   2      True          0          True
2   3      True          1          True
3   4     False          0         False
4   5      True          0          True

推荐阅读