如何为熊猫数据框中的每一行映射/替换列中的多个值
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
【讨论】:
以上是关于如何为熊猫数据框中的每一行映射/替换列中的多个值的主要内容,如果未能解决你的问题,请参考以下文章