使用条件语句在数据框中查找以前的最大索引

时间:2014-11-17 04:18:07

标签: python-2.7 pandas

从这样的数据集中,我需要找到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]])

1 个答案:

答案 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()