查找并匹配列中的元素并更改另一列中相应行的值

Posted

技术标签:

【中文标题】查找并匹配列中的元素并更改另一列中相应行的值【英文标题】:Find and match elements in a column and change the values of corresponding rows in another column 【发布时间】:2020-07-28 02:04:16 【问题描述】:

我有一个如下所示的 DataFrame:

df = pd.DataFrame('ID':['A','B','A','C','C'], 'value':[2,4,9,1,3.5])
df
  ID  value
0  A    2.0
1  B    4.0
2  A    9.0
3  C    1.0
4  C    3.5

我需要做的是遍历ID 列,并为每个唯一值找到该行,然后根据我拥有的引用将value 列中的相应行相乘。

例如,如果我有以下参考

if A multiply by 10
if B multiply by 3
if C multiply by 2

那么所需的输出将是:

df
  ID  value
0  A    2.0*10
1  B    4.0*3
2  A    9.0*10
3  C    1.0*2
4  C    3.5*2

提前致谢。

【问题讨论】:

【参考方案1】:

Series.map 与用于多列的系列字典一起使用value

d = 'A':10, 'B':3,'C':2
df['value'] = df['value'].mul(df['ID'].map(d))

print (df)
  ID  value
0  A   20.0
1  B   12.0
2  A   90.0
3  C    2.0
4  C    7.0

详情

print (df['ID'].map(d))
0    10
1     3
2    10
3     2
4     2
Name: ID, dtype: int64

【讨论】:

像往常一样快速、天才和有效的解决方案。非常感谢。

以上是关于查找并匹配列中的元素并更改另一列中相应行的值的主要内容,如果未能解决你的问题,请参考以下文章

C# 数据表。比较列中的数据,如果匹配,则追加相应行另一列中的数据

如何根据 PySpark 数据框的另一列中的值修改列? F.当边缘情况

如果一列中存在数字,则在另一列中查找与该数字相对应的值

根据列中的状态更改创建触发器并在表的另一列中插入值

如何查找一行不包含另一列中的值

根据另一列中的值更新 BigQuery 中的嵌套数组