2017-03-03 117 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