2017-03-03 114 views
1

我有兩個dataframes熊貓:空欄後合併

       ID  qsex age ranges  RuCitySize \ 
0 5708cd4861a825b2e961347aff150f87 Женский  18-24  Миллионники 
1 c88b75faa29244a3ca71c8d148360e53 Мужской  18-24  Миллионники 
2 c6db9e72cc44b5109b349a47a547ae30 Мужской  25-34 Санкт-Петербург 
3 2bf305920d45ec9cd29c14153e6fcfd3 Женский  18-24  Миллионники 
4 0caf8723a6338314f8eb139b9b524935 Женский  25-34   Москва 
5 0b03191a3c8a7440e210b7315168e78c Женский  13-17 Санкт-Петербург 
6 e9fdee324a86022a5177afc6d4826149 Мужской  18-24   500-млн 
7 8c2ae8e70e13321662a0e3e1050d5b09 Женский  25-34  Миллионники 
8 d0da39c4b854ee8a45058c8e2772e42b Женский  18-24  Миллионники 
9 d508a21d4f6a64db902ff18c33084578 Женский  18-24  Миллионники 
10 70acb11b17c6d19b1f943f1832835f10 Женский  18-24  Миллионники 
11 727ff3273098c0a809a110293516cadf Женский  18-24   Москва 
12 23458f63044f42075f1531df6d61c944 Женский  18-24    <100 

 qsex age ranges  RuCitySize FOM_quota 
0 Женский  18-24   100-500 3.680865 
1 Женский  18-24   500-млн 1.764538 
2 Женский  18-24  Миллионники 2.295797 
3 Женский  18-24   Москва 1.470449 
4 Женский  18-24 Санкт-Петербург 0.673560 
5 Женский  25-34   100-500 6.422541 
6 Женский  25-34   500-млн 2.570914 
7 Женский  25-34  Миллионники 3.709325 
8 Женский  25-34   Москва 2.457072 
9 Женский  25-34 Санкт-Петербург 1.460962 
10 Женский  35-44   100-500 5.673086 
11 Женский  35-44   500-млн 2.172469 
12 Женский  35-44  Миллионники 2.836543 
13 Женский  35-44   Москва 2.400152 

我需要合併這一點。 我嘗試用

quota = pd.merge(quota, fom, how='left', on=['qsex', 'age ranges', 'RuCitySize']) 

做,但列FOM_quota是空的。 我該如何統一那些數據框並獲得數值爲FOM_quota的列?

回答

1

你的代碼是工作給定樣本的DF:

In [116]: pd.merge(d1, d2, how='left', on=['qsex', 'age ranges', 'RuCitySize']) 
Out[116]: 
            ID  qsex age ranges  RuCitySize FOM_quota 
0 5708cd4861a825b2e961347aff150f87 Женский  18-24  Миллионники 2.295797 
1 c88b75faa29244a3ca71c8d148360e53 Мужской  18-24  Миллионники  NaN 
2 c6db9e72cc44b5109b349a47a547ae30 Мужской  25-34 Санкт-Петербург  NaN 
3 2bf305920d45ec9cd29c14153e6fcfd3 Женский  18-24  Миллионники 2.295797 
4 0caf8723a6338314f8eb139b9b524935 Женский  25-34   Москва 2.457072 
5 0b03191a3c8a7440e210b7315168e78c Женский  13-17 Санкт-Петербург  NaN 
6 e9fdee324a86022a5177afc6d4826149 Мужской  18-24   500-млн  NaN 
7 8c2ae8e70e13321662a0e3e1050d5b09 Женский  25-34  Миллионники 3.709325 
8 d0da39c4b854ee8a45058c8e2772e42b Женский  18-24  Миллионники 2.295797 
9 d508a21d4f6a64db902ff18c33084578 Женский  18-24  Миллионники 2.295797 
10 70acb11b17c6d19b1f943f1832835f10 Женский  18-24  Миллионники 2.295797 
11 727ff3273098c0a809a110293516cadf Женский  18-24   Москва 1.470449 
12 23458f63044f42075f1531df6d61c944 Женский  18-24    <100  NaN 

所以,最有可能你沒有你的真實數據匹配的行...

注:可能有不同的原因爲何。例如前導或尾隨空格,不同的dtypes等。

+0

我檢查過dtype和'qsex,年齡段,RuCitySize' - 是對象類型。 –

+0

我不知道,這是否重要,但在RuCtySize之後,我還有一列。 –

+0

@PetrPetrov,不,它不應該有任何區別。如果您希望我們能夠幫助您,我想您需要提供__reproducible__數據集 – MaxU