gpt4 book ai didi

python - 如何根据列值对 Pandas 数据框进行切片?

转载 作者:太空狗 更新时间:2023-10-29 22:30:08 25 4
gpt4 key购买 nike

我有一个格式如下的 pandas 数据框:

year    col1 
y1 val_1
y1 val_2
y1 val_3
y2 val_4
y2 val_5
y2 val_6
y3 val_7
y3 val_8
y3 val_9

如何只选择第 2 年之前的值并忽略第 3 年?

我需要一个新的数据框如下:

   year      col1 
y1 val_1
y1 val_2
y1 val_3
y2 val_4
y2 val_5
y2 val_6

y1, y2, y3 代表年份值

最佳答案

在您的示例数据集上,以下工作:

In [35]:

df.iloc[0:df[df.year == 'y3'].index[0]]
Out[35]:
year col1
0 y1 val_1
1 y1 val_2
2 y1 val_3
3 y2 val_4
4 y2 val_5
5 y2 val_6

因此将其分解,我们执行 bool 索引以查找等于年份值的行:

In [36]:

df[df.year == 'y3']
Out[36]:
year col1
6 y3 val_7
7 y3 val_8
8 y3 val_9

但是我们对索引感兴趣,所以我们可以用它来切片:

In [37]:

df[df.year == 'y3'].index
Out[37]:
Int64Index([6, 7, 8], dtype='int64')

但是我们只需要切片的第一个值因此调用index[0] ,但是,如果您 df 已经按年份值排序,则只需执行 df[df.year < y3]会更简单和工作。

关于python - 如何根据列值对 Pandas 数据框进行切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28964495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com