2017-10-18 3 views
1

Wie man einen Pandas Datenrahmen von einem anderen referenziert.Referenzieren von Pandas Datenrahmen von einem anderen Datenrahmen

import pandas as pd 

f1 = [['a',5,7],['b',7,9],['c',9,11],['d',11,13],['e',13,15],['f',15,17]] 
df1 = pd.DataFrame(data=f1,columns=[1,2,3]) 
f2 = [['a','c','f'],['b','d',None]] 
df2 = pd.DataFrame(data=f2, columns=[1,2,3]) 
print(df1) 
print(df2) 

Ich möchte, dass die Ausgabe ein anderer Datenrahmen ist, der die Werte von df1 bis df2 auflistet. sollte die Ausgabe sein

[ 
[[5,7],[9,11],[13,15]] 
[[7,9],[11,13],[]] 
] 
+0

Sie möchten eine Liste als Ausgabe? –

+0

Es kann entweder eine Liste oder ein anderer Datenrahmen sein – narasimman

Antwort

0

die 1. df1 Make

df2.apply(lambda x : x.map(df1.set_index(1).T.to_dict('l'))).values.tolist() 
Out[147]: [[[5, 7], [9, 11], [15, 17]], [[7, 9], [11, 13], nan]] 

dict Wenn Sie einen Datenrahmen wollen

d=df2.apply(lambda x : x.map(df1.set_index(1).T.to_dict('l'))) 
d 
Out[164]: 
     1   2   3 
0 [5, 7] [9, 11] [15, 17] 
1 [7, 9] [11, 13]  NaN 

Ein weiterer Schritt ersetzen NaN-[]:

d.loc[d[3].isnull(),3] = d.loc[d[3].isnull(),3].apply(lambda x: []) 
d 
Out[184]: 
     1   2   3 
0 [5, 7] [9, 11] [15, 17] 
1 [7, 9] [11, 13]  [] 
Verwandte Themen