Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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_Dataframe_Join_Merge - Fatal编程技术网

Python 熊猫:按特殊顺序合并两个数据帧

Python 熊猫:按特殊顺序合并两个数据帧,python,pandas,dataframe,join,merge,Python,Pandas,Dataframe,Join,Merge,我检查了所有其他的答案,我找不到我想要的 我有一个数据帧df1: 0 A B 1 a good 2 b bad 3 c fair 和数据帧df2: 0 C D 1 a a 2 a b 3 b c 4 a d 我希望结果是: 0 C B1 D B2 1 a good a good 2 a good b bad 3 b bad c fair 4 a good d --- 比如说,df1扮演“字典”的角色,我需要为a元素提取B的对应值。 注意,由于元素d未在df1中定义,因此相应的值在df

我检查了所有其他的答案,我找不到我想要的

我有一个数据帧df1:

0 A B
1 a good
2 b bad
3 c fair
和数据帧df2:

0 C D
1 a a
2 a b
3 b c
4 a d
我希望结果是:

0 C B1   D B2
1 a good a good
2 a good b bad
3 b bad  c fair
4 a good d ---
比如说,df1扮演“字典”的角色,我需要为a元素提取B的对应值。 注意,由于元素d未在df1中定义,因此相应的值在df2中为“---”

看起来很简单,但无法让它工作。 感谢所有提示。

使用

用于在df2中有更多列时创建动态映射:

my_list=[]
for i in df2.columns:
    my_list.append(df2[i].map(d).fillna('---'))
df_new=df2.join(pd.concat(my_list,axis=1),lsuffix='',rsuffix='_mapped')
print(df_new)

   C  D C_mapped D_mapped
0  a  a     good     good
1  a  b     good      bad
2  b  c      bad     fair
3  a  d     good      ---

哦,我是一个初学者,如果我的格式不正确,我很抱歉。@jezrael说得好,我也添加了这个例子。:)如果答案有帮助,不要忘记。谢谢,完美!第一部分即使在50000行的情况下也非常有效。非常感谢。
my_list=[]
for i in df2.columns:
    my_list.append(df2[i].map(d).fillna('---'))
df_new=df2.join(pd.concat(my_list,axis=1),lsuffix='',rsuffix='_mapped')
print(df_new)

   C  D C_mapped D_mapped
0  a  a     good     good
1  a  b     good      bad
2  b  c      bad     fair
3  a  d     good      ---