【发布时间】:2021-06-04 03:19:20
【问题描述】:
我还是 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 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' 列应该只为属于同一组的行设置
- 该组应由紧跟在非南 'd_header' 行之后的行的 'd_prefix' 列值确定
所以在下面的例子中:
- 0: 'd_header' == '##### 摩洛哥#####'
- 1:检查 'd_prefix' 并将所有行的 'd_header' 列设置为 '##### MOROCCO #####' 直到 'd_prefix' 已更改(将值设置为 NaN)或新的 'd_header ' 找到(重新开始)
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
但我对这种方法没有任何运气。有没有更好的方法来达到同样的效果?
【问题讨论】:
-
这可能是重复的。见this。
标签: python pandas dataframe conditional-statements nan