Avi*_*ton 7 python dataframe pandas
我有以下数据框:
pri sec
TOM AB,CD,EF
JACK XY,YZ
HARRY FG
NICK KY,NY,SD,EF,FR
Run Code Online (Sandbox Code Playgroud)
我需要跟随列名称的输出如下(基于列'sec'中存在多少个分隔的字段):
pri sec sec0 sec1 sec2 sec3 sec4
TOM AB,CD,EF AB CD EF NaN NaN
JACK XY,YZ XY YZ NaN NaN NaN
HARRY FG FG NaN NaN NaN NaN
NICK KY,NY,SD,EF,FR KY NY SD EF ER
Run Code Online (Sandbox Code Playgroud)
我可以得到任何建议吗?
jez*_*ael 15
使用join+ split+ add_prefix:
df = df.join(df['sec'].str.split(',', expand=True).add_prefix('sec'))
print (df)
pri sec sec0 sec1 sec2 sec3 sec4
0 TOM AB,CD,EF AB CD EF None None
1 JACK XY,YZ XY YZ None None None
2 HARRY FG FG None None None None
3 NICK KY,NY,SD,EF,FR KY NY SD EF FR
Run Code Online (Sandbox Code Playgroud)
如果需要NaN添加fillna:
df = df.join(df['sec'].str.split(',', expand=True).add_prefix('sec').fillna(np.nan))
print (df)
pri sec sec0 sec1 sec2 sec3 sec4
0 TOM AB,CD,EF AB CD EF NaN NaN
1 JACK XY,YZ XY YZ NaN NaN NaN
2 HARRY FG FG NaN NaN NaN NaN
3 NICK KY,NY,SD,EF,FR KY NY SD EF FR
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5911 次 |
| 最近记录: |