我想根据另一列中的值从数据框的特定列中删除单元格值。
对于“match”列中包含“TRUE”的每一行,应删除“Total Difference by Brand”列中的值(不是零,只是空)。
变量 | 差异幅度 | 品牌总差异 | 位置总差异 | 匹配 |
---|---|---|---|---|
新资金来源总数 | 1406904 | 5031189 | 4373182 | 错误 |
新资金来源总数 | 75821 | 5031189 | 4373182 | 真的 |
新资金来源总数 | 33692 | 5031189 | 4373182 | 真的 |
新资金来源总数 | 2627094 | 5031189 | 4373182 | 真的 |
新资金来源总数 | 400000 | 500000 | 4373182 | 错误 |
新资金来源总数 | 500000 | 500000 | 4373182 | 真的 |
新资金来源总数 | 1406904 | 5131189 | 4373182 | 错误 |
新资金来源总数 | 75821 | 5131189 | 4373182 | 真的 |
新资金来源总数 | 33692 | 5131189 | 4373182 | 真的 |
数据框应如下所示:
变量 | 差异幅度 | 品牌总差异 | 位置总差异 | 匹配 |
---|---|---|---|---|
新资金来源总数 | 1406904 | 5031189 | 4373182 | 错误 |
新资金来源总数 | 75821 | 4373182 | 真的 | |
新资金来源总数 | 33692 | 4373182 | 真的 | |
新资金来源总数 | 2627094 | 4373182 | 真的 | |
新资金来源总数 | 400000 | 500000 | 4373182 | 错误 |
新资金来源总数 | 500000 | 4373182 | 真的 | |
新资金来源总数 | 1406904 | 5131189 | 4373182 | 错误 |
新资金来源总数 | 75821 | 4373182 | 真的 | |
新资金来源总数 | 33692 | 4373182 | 真的 |
谢谢
答案 0 :(得分:1)
你可以试试这个:
import pandas as pd
df = pd.DataFrame(
{
"variable": {
0: "Total New Funding Sources",
1: "Total New Funding Sources",
2: "Total New Funding Sources",
3: "Total New Funding Sources",
},
"Difference Magnitude": {0: 1406904.0, 1: 75821.0, 2: 33692.0, 3: 2627094.0},
"Total Difference by Brand": {
0: 5031189.0,
1: 5031189.0,
2: 5031189.0,
3: 5031189.0,
},
"Total Difference by Location": {
0: 4373182.0,
1: 4373182.0,
2: 4373182.0,
3: 4373182.0,
},
"match": {0: False, 1: True, 2: True, 3: True},
}
)
df.loc[df["match"].eq(True), "Total Difference by Brand"] = ""
print(df[["variable", "Total Difference by Brand"]])
# Outputs
variable Total Difference by Brand
0 Total New Funding Sources 5031189.0
1 Total New Funding Sources
2 Total New Funding Sources
3 Total New Funding Sources