我有2个数据框。
第一个:
df1 = pd.DataFrame({'nom_combinaison': ['Combinaison1', 'Combinaison1', 'Combinaison1', 'Combinaison2','Combinaison2', 'Combinaison2', 'Combinaison3', 'Combinaison3', 'Combinaison3'], 'prenom': ['Personne2', 'Personne3', 'Personne1', 'Personne2', 'Personne4', 'Personne1', 'Personne2', 'Personne5', 'Personne1']})
df2 = pd.DataFrame({'prenom': ['Personne1', 'Personne2', 'Personne3', 'Personne4', 'Personne5'], 'valeur1' : [2, 1, 1], 'valeur2' : [7, 4, 1], 'valeur3' : [1, 2, 3], 'valeur4' : [7, 8, 9], 'valeur5' : [10, 11, 12]})
我想将df2的值加入df1中。
df1 = pd.DataFrame({'nom_combinaison': ['Combinaison1', 'Combinaison1', 'Combinaison1', 'Combinaison2','Combinaison2', 'Combinaison2', 'Combinaison3', 'Combinaison3', 'Combinaison3'], 'prenom': ['Personne2', 'Personne3', 'Personne1', 'Personne2', 'Personne4', 'Personne1', 'Personne2', 'Personne5', 'Personne1']})
df2 = pd.DataFrame({'prenom': ['Personne1', 'Personne2', 'Personne3', 'Personne4', 'Personne5'], 'valeur1' : [2, 1, 1], 'valeur2' : [7, 4, 1], 'valeur3' : [1, 2, 3], 'valeur4' : [7, 8, 9], 'valeur5' : [10, 11, 12]})
test = pd.merge(df1, df2, how = "outer", on = ["prenom"])
test = test.sort_values(by = ["nom_combinaison", "prenom"])
不幸的是,我到处都出现了NA:
nom_combinaison prenom valeur1 valeur2 valeur3
45 Combinaison_1 Personne2 NaN NaN NaN
54 Combinaison_1 Personne3 NaN NaN NaN
0 Combinaison_1 Personne1 2.0 1.0 1.0
46 Combinaison_2 Personne2 NaN NaN NaN
71 Combinaison_2 Personne4 NaN NaN NaN
1 Combinaison_2 Personne1 2.0 1.0 1.0
47 Combinaison_3 Personne2 NaN NaN NaN
95 Combinaison_3 Personne5 NaN NaN NaN
2 Combinaison_3 Personne1 2.0 1.0 1.0
我注意到,每个加入的组合系统地是1个人。其余的永远不会。 “名字”字段的类型为Series:
print(type(df1["prenom"]))
print(type(df2["prenom"]))
<class 'pandas.core.series.Series'>
<class 'pandas.core.series.Series'>
我不明白...
谢谢