2017-10-18 2 views
1

Comment référencer une trame de données pandas d'une autre.référençant les données Pandas d'une autre base de données

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) 

Je souhaite que la sortie soit une autre structure de données qui répertorie les valeurs de df1 à df2. La sortie doit être

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

Vous voulez une liste comme sortie? –

+0

Il peut s'agir d'une liste ou d'un autre fichier de données – narasimman

Répondre

0

Faire le 1er df1 à dict

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]] 

Si vous voulez une trame de données

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 

Une étape de plus remplacer 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]  []