Python 熊猫:按特殊顺序合并两个数据帧
我检查了所有其他的答案,我找不到我想要的 我有一个数据帧df1: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
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 ---