【问题标题】:How to map/replace multiple values in a column for each row in pandas dataframe如何为熊猫数据框中的每一行映射/替换列中的多个值
【发布时间】:2021-12-09 08:57:06
【问题描述】:

我有这个样本

col1    result
1          A
1,2,3   
2          B
2,3,4   
3,4 
4          D
1,3,4   
3          C

这是我的地图变量。 vals_to_replace = {'1':'A', '2':'B', '3':'C' , '4':'D'} 我将它映射到 col1,只从 col 结果中获取一些值,不知道为什么只映射单个值。

关于如何解决它的任何想法?

谢谢

【问题讨论】:

  • map/replace 默认使用精确值。使用df['col1'].replace(vals_to_replace, regex=True)
  • @QuangHoang 谢谢,伙计!让它成为一个答案,我会接受它!

标签: python-3.x pandas dataframe mapping


【解决方案1】:

也许这对你有用:

import pandas as pd
df = pd.DataFrame({'col1': ['1', '1,2,3', '2', '2,3,4', '3, 4', '4', '1,3,4', '3']})
translation = {'1':'A', '2':'B', '3':'C' , '4':'D'}
df['result'] = df.col1.str.translate(str.maketrans(translation))
print(df)

结果:

    col1 result
0      1      A
1  1,2,3  A,B,C
2      2      B
3  2,3,4  B,C,D
4   3, 4   C, D
5      4      D
6  1,3,4  A,C,D
7      3      C

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2020-11-15
    • 2018-08-16
    • 2017-11-01
    • 2022-11-18
    • 2013-12-28
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多