【发布时间】:2019-11-20 16:02:18
【问题描述】:
我有一个这样的数据框,
col1 col2 col3
1 A T
2 A F
3 N N
4 N N
5 B T
6 N N
7 B F
8 N N
9 A T
10 N N
11 N N
12 A T
13 N N
14 N N
15 A T
16 N N
17 A F
现在我想从上面创建一个新的数据框,在 col3 中的每个 T 和 F 之间的 col2 和 col3 中有连续的 N,用 T 填充上面的非 N 值。忽略那些 T或 F 出现在 T 和 F and 之后。
所以所需的数据框看起来像,
col1 col2 col3
1 A T
2 A F
3 N N
4 N N
5 B T
6 B T
7 B F
8 N N
9 A T
10 N N
11 N N
12 A T
13 N N
14 N N
15 A T
16 A T
17 A F
我可以使用 for 循环执行此操作,并通过比较下一个值和上一个值来存储索引。但是执行起来需要更长的时间。我正在寻找一些 pythonic 方式/pandas 快捷方式来有效地做到这一点。
【问题讨论】:
-
您必须提供更多更详细的需求说明。
-
我觉得解释的很清楚了。在
col3中,如果N介于T和F之间,则将col2和col3替换为上一行,如ffill。