我有一个这样的数据框
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
答案 0 :(得分:3)
您是说先用NaN
替换空字符串,然后用groupby
和ffill
并将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
>>>