通过ID在熊猫中填充缺失值

时间:2019-06-30 10:43:44

标签: python pandas

我有一个这样的数据框

company_id     established_date   othervariables   location
IX133           2003                               Paris
IX133           
IX133
IX133
IX133           2006                               Istanbul
IX133
IX133           
TY213           1995                               New York
TY213
TY213
IGG12           2004                               Milan
IGG12
IGG12
IGG12 
IZZX1
IZZX1
I24TT           1998                               Oslo
I24TT           
I24TT 

对于每个company_id - location,我希望在每一列上都显示created_date和位置。该怎么做?

以下是预期的输出,请注意IX133在巴黎和伊斯坦布尔均设有分店:

   company_id     established_date   othervariables   location
    IX133           2003                               Paris
    IX133           2003                               Paris
    IX133           2003                               Paris 
    IX133           2003                               Paris
    IX133           2006                               Istanbul
    IX133           2006                               Istanbul
    IX133           2006                               Istanbul
    TY213           1995                               New York
    TY213           1995                               New York
    TY213           1995                               New York
    IGG12           2004                               Milan
    IGG12           2004                               Milan
    IGG12           2004                               Milan
    IGG12           2004                               Milan
    IZZX1          
    IZZX1
    I24TT           1998                               Oslo
    I24TT           1998                               Oslo 
    I24TT           1998                               Oslo

1 个答案:

答案 0 :(得分:3)

您是说先用NaN替换空字符串,然后用groupbyffill并将NaN替换回空字符串?

>>> df.replace('', np.nan).groupby('company_id', as_index=False).ffill().fillna('')
   company_id established_date othervariables  location
0       IX133             2003                    Paris
1       IX133             2003                    Paris
2       IX133             2003                    Paris
3       IX133             2003                    Paris
4       IX133             2006                 Istanbul
5       IX133             2006                 Istanbul
6       IX133             2006                 Istanbul
7       TY213             1995                 New York
8       TY213             1995                 New York
9       TY213             1995                 New York
10      IGG12             2004                    Milan
11      IGG12             2004                    Milan
12      IGG12             2004                    Milan
13      IGG12             2004                    Milan
14      IZZX1                                          
15      IZZX1                                          
16      I24TT             1998                     Oslo
17      I24TT             1998                     Oslo
18      I24TT             1998                     Oslo
>>>