基于列中的连续行值创建列

2024-10-06 12:20:30 发布

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

我有一个数据帧,包含大约300000行,结构如下:

name    Jack
gender  M
year    1993
country USA
city    Odessa
name    John
gender  M
year    1992
name    Sam
country Canada
city    Toronto

有没有可能使用Pandas使dataframe看起来像这样?你知道吗

name    gender  year    country city
Jack    M       1993    USA     Odessa
John    M       1992        
Sam                     Canada  Toronto

带“name”的行始终存在,但其他行可能不存在。我尝试使用ItErrors,但没有成功。你知道吗


Tags: 数据namecitypandassamjohngender结构
1条回答
网友
1楼 · 发布于 2024-10-06 12:20:30
In [17]:
g = np.cumsum(df.iloc[: , 0] == 'name')

In [15]:
df.groupby(g).apply(lambda x : pd.DataFrame(x.set_index([0]).T , columns=['name' , 'gender' , 'year' , 'country' , 'city']) )
Out[15]:
        name    gender  year   country  city
0                       
1   1   Jack    M      1993    USA      Odessa
2   1   John    M      1992    NaN      NaN
3   1   Sam    NaN      NaN    Canada   Toronto

相关问题 更多 >