Python 通过字典映射将多个列连接到一个新列中
我正在试图找出如何创建一个新列,将其他列的相应键的值连接起来。。。我在下文解释: 假设此字典和以下数据帧:Python 通过字典映射将多个列连接到一个新列中,python,pandas,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
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
请问有什么好的通用想法吗?我知道我可以将每一列映射到一个新的列,然后加入,但对于真正多的列,我更喜欢更一般的
非常感谢 我相信
替换和agg
/应用
:
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
非常优雅的解决方案@光环,它就像一个符咒!如果我的dict的值是列表,比如说,我想要每个值的第0个元素。。。你会如何编码?提前谢谢!