如何为熊猫数据框中的每一行映射/替换列中的多个值

Posted

技术标签:

【中文标题】如何为熊猫数据框中的每一行映射/替换列中的多个值【英文标题】: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 谢谢,伙计!让它成为一个答案,我会接受它! 【参考方案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

【讨论】:

以上是关于如何为熊猫数据框中的每一行映射/替换列中的多个值的主要内容,如果未能解决你的问题,请参考以下文章

如何为列中的每个唯一值获取数据框中的项目数[重复]

如何将逗号添加到数据框中的现有值中?熊猫

如何在熊猫数据框的每一行中找到选定列中的两个最低值?

如何用同一数据框中其他列的实际列值替换一列中的字符串值?

如何为列中的单元格着色?熊猫,pygsheets

如何在 python 的另一列中的字符串值中从数据框中的一列中搜索字符串?