我试图弄清楚如何创建一个新列,将其他列的对应键的值连接起来……我在下文中进行解释:
假设该词典和以下数据框:
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
请问您有什么好主意吗?我知道我可以将每个列映射到一个新列,然后再加入,但是我更喜欢更通用的列 ...
非常感谢!
答案 0 :(得分:3)
我相信replace
和agg
/ 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