按字段中的id填充缺少的值

2024-09-28 21:43:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的数据帧

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,我都希望在每一列上都有确定的日期和位置。怎么做

预计产量如下,请注意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

Tags: idnewlocationoslocompanyparisyorkmilan
1条回答
网友
1楼 · 发布于 2024-09-28 21:43:45

您的意思是用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
>>> 

相关问题 更多 >