如何在 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-100
,123000-124000
变成0-100
,等等,然后过滤小于12的值:
filtered = df[df.index % 100 < 12]
我有一个很大的 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-100
,123000-124000
变成0-100
,等等,然后过滤小于12的值:
filtered = df[df.index % 100 < 12]