Python 这是基于一个条件的
我对pandas还是新手,但我有一个以下格式的数据帧:Python 这是基于一个条件的,python,pandas,dataframe,conditional-statements,nan,Python,Pandas,Dataframe,Conditional Statements,Nan,我对pandas还是新手,但我有一个以下格式的数据帧: d_title d_prefix d_header d_country d_subtitles d_season d_episode 0 NaN NaN ##### MOROCCO ##### Morocco NaN NaN NaN 1 title1
d_title d_prefix d_header d_country d_subtitles d_season d_episode
0 NaN NaN ##### MOROCCO ##### Morocco NaN NaN NaN
1 title1 AR NaN NaN NaN NaN NaN
2 title2 AR NaN NaN NaN NaN NaN
3 NaN NaN ##### MOROCCO 2 ##### Morocco NaN NaN NaN
4 title3 AR NaN NaN NaN NaN NaN
5 NaN NaN ##### ALGERIA ##### Algeria NaN NaN NaN
6 title4 AR NaN NaN NaN NaN NaN
7 title5 AR NaN NaN NaN NaN NaN
8 title6 IT NaN NaN NaN NaN NaN
9 title7 PL NaN NaN NaN 1.0 1.0
10 title8 UK NaN NaN NaN NaN NaN
11 title9 UK NaN NaN NaN NaN NaN
我尝试使用以下条件填充“d_header”列中的所有NaN字段:
- 仅应为属于同一组的行设置“d_header”列
- 组应由紧跟在非Nan“d_头”行之后的行的“d_前缀”列值确定
- 0:‘d#U头球’='#摩洛哥###########
- 1:检查'd#u prefix'并设置'd#u header'列,直到'd#u prefix'已更改(将值设置为NaN)或找到新的'd#u header'(重新开始)
- d_prefix几乎就是您需要的分组键
it然后b填充
groupby()
- 简化为简单的
ffill
这可能是重复的。看,这正是我要找的。谢谢你,罗布
d_title d_prefix d_header d_country d_subtitles d_season d_episode
0 NaN NaN ##### MOROCCO ##### Morocco NaN NaN NaN
1 title1 AR ##### MOROCCO ##### NaN NaN NaN NaN
2 title2 AR ##### MOROCCO ##### NaN NaN NaN NaN
3 NaN NaN ##### MOROCCO TNT ##### Morocco NaN NaN NaN
4 title3 AR ##### MOROCCO TNT ##### NaN NaN NaN NaN
5 NaN NaN ##### ALGERIA ##### Algeria NaN NaN NaN
6 title4 AR ##### ALGERIA ##### NaN NaN NaN NaN
7 title5 AR ##### ALGERIA ##### NaN NaN NaN NaN
8 title6 IT NaN NaN NaN NaN NaN
9 title7 PL NaN NaN NaN 1.0 1.0
10 title8 UK NaN NaN NaN NaN NaN
11 title9 UK NaN NaN NaN NaN NaN
df = df.assign(d_header=df.assign(t_prefix=df.d_prefix.fillna(method="bfill"))
.groupby("t_prefix", as_index=False).apply(lambda dfa: dfa.d_header.fillna(method="ffill"))
.reset_index(drop=True)
)