[英]Reformat weird Dataframe
名稱 | 地方 | pers_data |
---|---|---|
鈉 | 鈉 | 楠 |
史密斯約翰 | 紐約 | sjohn@gmail.com |
鈉 | 楠 | 0987 4567 |
鈉 | 鈉 | 0653 6734 |
維克斯蒂德 | SA | 0986 5332 |
鈉 | 鈉 | vickie@hotmail.com |
我想刪除 NaN 值並重新格式化文件,如下所示:
名稱 | 地方 | pers_data | 其他 | other_2 |
---|---|---|---|---|
史密斯約翰 | 紐約 | sjohn@gmail.com | 0987 4567 | 0653 6734 |
維克斯蒂德 | SA | vickie@hotmail.com | 0986 5332 |
有人可以幫我嗎,我嘗試了一些東西,但什么都不懂,我想真正了解自己在做什么。
這是pivot
的變體:
idx = df['Name'].notna().cumsum()
out = (df
.assign(col=df.groupby(idx).cumcount(),
Name=df['Name'].groupby(idx).ffill(),
place=df['place'].groupby(idx).ffill()
)
.pivot(index=['Name', 'place'], columns='col', values='pers_data')
.add_prefix('other_').rename(columns={'other_0': 'pers_data'})
.reset_index().rename_axis(columns=None)
.dropna(how='all')
)
output:
Name place pers_data other_1 other_2
1 Smith John NY sjohn@gmail.com 0987 4567 0653 6734
2 Vic Stied SA 0986 5332 vickie@hotmail.com NaN
df1.loc[~df1.isna().all(axis=1)].fillna(method='ffill')\
.groupby(['Name','place']).agg(','.join)\
.pers_data.str.split(',',expand=True).add_prefix('other_')\
.rename(columns={'other_0':'pers_data'}).reset_index()
Name place pers_data other_1 other_2
0 Smith John NY sjohn@gmail.com 0987 4567 0653 6734
1 Vic Stied SA 0986 5332 vickie@hotmail.com None
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.