如何在 Python 中对 Pandas 数据框中的行进行复杂的选择

How to do in Python a complex selection of rows in Pandas dataframe

我有一个很大的 df 如下(只显示第一行,真正的有超过 60000k 行):

Id  Name    Age Friends
0   Will    33  385
1   Jean    26  2
2   Hugh    55  221
3   Deanna  40  465
4   Quark   68  21
5   Weyoun  59  318
6   Gowron  37  220
7   Will    54  307
8   Jadzia  38  380
9   Hugh    27  181
10  Odo     53  191
11  Ben     57  372
........

我想存储在另一个数据框中,每 100 个值插入 12。 我知道使用 .loc.iloc 您可以为每个 n 值存储 1 个值(在下面的示例中为 100):

df1 = df.loc[::100]

我尽量不在数据帧中使用 for 进行迭代,因为 df 太大了,过程变慢了很多,.loc 有什么办法可以实现这个复杂的行选择?

实际上,您可以 trim 从索引值中扣除所有数百个,例如200-300变成0-100123000-124000变成0-100,等等,然后过滤小于12的值:

filtered = df[df.index % 100 < 12]