Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过字典映射将多个列连接到一个新列中_Python_Pandas - Fatal编程技术网

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个元素。。。你会如何编码?提前谢谢!