Pandas Select 行从列中的特定起始值开始到结束

Pandas Select Rows Start to End with Specific Starting Value in Column

这很简单,但我还没有找到答案。我有一个数据框 'df1',看起来像这样:

    year      5
0   1948 -99.99
1   1949 -99.99
2   1950  -1.74
3   1951   0.17
4   1952  -0.93

而且,我只需要 select 以 'year' 列 == 1950 开始的行,然后到行的末尾(在本例中为“1952”)。

我在下面尝试过,但我只得到“假”、“真”,但当 'yearstart' = 1950 时我只得到“真”。所以,如果 'yearstart' == 1950,我得到以下信息。我不确定如何执行 yearstart 并将所有数据提取到行的末尾。

yearstart = 1950

df2 = [df1.year==yearstart]

我明白了 -

[0     False
 1     False
 2      True
 3     False
 4     False

我需要的是这个:

df2 = 

    year      5
0   1950  -1.74
1   1951   0.17
2   1952  -0.93

试试 idxmaxiloc:

>>> df.iloc[df['year'].eq(1950).idxmax():]
   year     5
2  1950 -1.74
3  1951  0.17
4  1952 -0.93
>>> 

如果年份是排序的,或者如果您希望所有年份大于或等于 1950,您可以使用 query:

df.query('year >= 1950')

输出:

   year     5
2  1950 -1.74
3  1951  0.17
4  1952 -0.93

df2 = df1[df1['year'] >= 1950]