查找并匹配列中的元素并更改另一列中相应行的值
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# 数据表。比较列中的数据,如果匹配,则追加相应行另一列中的数据