通过字典将多列映射为新列

时间:2020-03-19 17:40:49

标签: python pandas

我试图弄清楚如何创建一个新列,将其他列的对应键的值连接起来……我在下文中进行解释:

假设该词典和以下数据框:

my_dict={np.nan:0, 'A':10, 'B':22, 'C':23, 'D':50, 'E':7}
my_df=pd.DataFrame({'col_1':['D', 'A', 'C', 'E'], 'col_2':['B', 'A', np.nan, 'C'], 'col_3':['D', 'A', 'E', 'C']})

所需的输出是:

  col_1   col_2   col_3    new_col
0     D       B       D   50-22-50
1     A       A       A   10-10-10
2     C     NaN       E    23-0-10
3     E       C       C    7-23-23

请问您有什么好主意吗?我知道我可以将每个列映射到一个新列,然后再加入,但是我更喜欢更通用的列 ...

非常感谢!

1 个答案:

答案 0 :(得分:3)

我相信replaceagg / apply

my_df['new_col'] = my_df.replace(my_dict).astype(str).agg('-'.join, axis=1)

输出:

  col_1 col_2 col_3   new_col
0     D     B     D  50-22-50
1     A     A     A  10-10-10
2     C   NaN     E    23-0-7
3     E     C     C   7-23-23