Python 基于列值并用逗号分隔,将数据从一个数据帧复制到另一个数据帧

Python 基于列值并用逗号分隔,将数据从一个数据帧复制到另一个数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧,即df1和df2 df1就像 Index YH HE MT CU EI 0 Dot Sf Sy Lc 1 Rls Bd Sa Ta 2 Fs Ft Rg 而df2就像 Index Z1 Z2 Z3 0 YH HE 1 HE EI 2 MT CU 我想要一个像这样的df3 Index Z1 Z

我有两个数据帧,即df1和df2

df1就像

Index YH   HE  MT  CU  EI
 0    Dot  Sf  Sy  Lc  
 1    Rls  Bd  Sa  Ta  
 2    Fs       Ft  Rg     
而df2就像

Index   Z1   Z2  Z3
 0      YH       HE
 1      HE       EI
 2      MT       CU  
我想要一个像这样的df3

Index   Z1           Z2     Z3
 0      YH                  HE
 1      HE                  EI
 2      MT                  CU  
 3      Dot,Rls,Fs          Sf,Bd
 4      Sf,Bd              
 5      Sy,Sa,Ft            Lc,Ta,Rg
基本上,只在一个单元格中,但用逗号分隔。逗号分隔的单元格来自df1

在df3中,第3、4、5行对应于第0、1、2行

(0,Z1) of df2 is YH and column YH in df1 is Dot,Rls,Fs 
So Dot,Rls,Fs comes at (3,Z1) in df3

(1,Z1) of df2 is HE and HE column has Sf,BD in df1 
So Sf,Bd comes at (4,Z1) in df3 
同样,对所有其他人来说


如果仍然不清楚,请告诉我。

答案已包含在上一个问题中

s=df2.set_index('Index').astype(object).apply(lambda x : x.map(df1.set_index('Index').to_dict('l')))


pd.concat([df2.set_index('Index'),s.fillna('').applymap(','.join)])

Out[1798]: 
               Z1 Z2        Z3
Index                         
0              YH           HE
1              HE           EI
2              MT           CU
0      Dot,Rls,Fs       Sf,Bd,
1          Sf,Bd,           ,,
2        Sy,Sa,Ft     Lc,Ta,Rg
更新

s=df2.set_index('Index').astype(object).apply(lambda x : x.map(df1.set_index('Index').replace('',np.nan).stack().groupby(level=1).apply(list).to_dict()))
pd.concat([df2.set_index('Index'),s.fillna('').applymap(','.join)])
Out[1815]: 
               Z1 Z2        Z3
Index                         
0              YH           HE
1              HE           EI
2              MT           CU
0      Dot,Rls,Fs        Sf,Bd
1           Sf,Bd             
2        Sy,Sa,Ft     Lc,Ta,Rg

请检查更新我得到的类型错误:('sequence item 3:expected str instance,float found','Occurd at index P1')我只是忘了在原来的问题中提到NAN,并为同样的问题表示歉意。我觉得这有点不同,并且有形成不同问题的重量altogether@Rookie_123不用担心,我也很难找到不同的。有没有办法去掉Sf下面Z3栏中出现的,Bd@Rookie_123yw:-)祝你今天愉快