【问题标题】: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

提前致谢。

【问题讨论】:

    标签: python pandas dataframe string-matching


    【解决方案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
    

    【讨论】:

    • 像往常一样快速、天才和有效的解决方案。非常感谢。
    猜你喜欢
    • 2019-01-19
    • 2019-01-20
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多