我有一个包含大约300 000行的数据框,其结构如下:
name Jack
gender M
year 1993
country USA
city Odessa
name John
gender M
year 1992
name Sam
country Canada
city Toronto
是否有可能使用Pandas使数据帧看起来像这样?
name gender year country city
Jack M 1993 USA Odessa
John M 1992
Sam Canada Toronto
带有“名字”的行总是在那里,但其他人可能不在。我尝试使用iterrows但没有成功。
答案 0 :(得分:0)
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