从这样的数据集中,我需要找到A的最大最接近的索引。数据框可能很大,但它总是必须找到第二列等于" A&#的最后一个索引。 34。
index X
1 A
2 B
3 C
4 D
5 E
6 A
7 B
8 C
9 D
10 E
这是我希望实现的输出。 " A"
的最大最接近的索引index X Y
1 A 1
2 B 1
3 C 1
4 D 1
5 E 1
6 A 6
7 B 6
8 C 6
9 D 6
10 E 6
像这样。
for i in x:
max(if df[i][1] == 'A' and df[0] < df[i][0]])
答案 0 :(得分:1)
您可以使用以下位置提取X为“A”的索引列:
In [11]: df['index'].where(df['X'] == 'A')
Out[11]:
0 1
1 NaN
2 NaN
3 NaN
4 NaN
5 6
6 NaN
7 NaN
8 NaN
9 NaN
Name: index, dtype: float64
看起来你只想填写这个:
In [12]: df['index'].where(df['X'] == 'A').ffill()
Out[12]:
0 1
1 1
2 1
3 1
4 1
5 6
6 6
7 6
8 6
9 6
Name: index, dtype: float64
并将其设置为Y列可获得所需的结果:
In [13]: df['Y'] = df['index'].where(df['X'] == 'A').ffill()