如何创建具有特定值的后续索引的Dataframe列?我知道我可以使用查找匹配索引
b_Index = df[df.Type=='B'].index
c_Index = df[df.Type=='C'].index
但是我需要一个解决方案,它包括了回绕的情况,使得最终匹配之后的“下一个”索引是第一个索引。
假设我有一个Type
系列的 Dataframe 。Type
包含值A、B或C。
d = dict(Type=['A', 'A', 'A', 'C', 'C', 'C', 'A', 'A', 'C', 'A', 'B', 'B', 'B', 'A'])
df = pd.DataFrame(d)
Type
0 A
1 A
2 A
3 C
4 C
5 C
6 A
7 A
8 C
9 A
10 B
11 B
12 B
13 A
我希望将NextForwardBIndex
和NextForwardCIndex
列相加,结果为
Type NextForwardBIndex NextForwardCIndex
0 A 10 3
1 A 10 3
2 A 10 3
3 C 10 4
4 C 10 5
5 C 10 8
6 A 10 8
7 A 10 8
8 C 10 3
9 A 10 3
10 B 11 3
11 B 12 3
12 B 10 3
13 A 10 3
2条答案
按热度按时间wmvff8tz1#
您可以使用一点
numpy.roll
、pandas.ffill
和pandas.fillna
:输出:
gopyfrb32#
这应该行得通:
旧答案:
输出: