gpt4 book ai didi

python - 一次获取(最多)N 行 DataFrame

转载 作者:行者123 更新时间:2023-12-04 03:21:59 25 4
gpt4 key购买 nike

说我有一个 DataFrame

import pandas as pd
df = pd.DataFrame() #A dataframe with 99 rows

df.shape[0]
#99
我想迭代它,一次获得 10 行。这可以通过例如使用 range(0,99,10) 来完成并循环过去。问题是最后 9 个元素将被忽略 - 为了克服这个问题,我们可以让它运行到 90,然后使用其余的元素。
我想避免手动创建这样的循环,因此我想知道是否有更好的方法来迭代数据帧(或实际上任何可迭代元素),这样我得到 (max) N=10元素一次因此最后,最后一个 slize 包含 9 个元素?

最佳答案

给出一个示例数据框:

df = pd.DataFrame(np.arange(0,99*3).reshape(99,3))
输出:
    0   1   2
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11
4 12 13 14
... ... ... ...
94 282 283 284
95 285 286 287
96 288 289 290
97 291 292 293
98 294 295 296
您可以按组拆分它-> 首先设置一列来对项目进行分组:
df['groups'] =  df.index // 10 #  <<< thanks to henry for the suggestion
df
输出:
    0   1   2   groups
0 0 1 2 0.0
1 3 4 5 0.0
2 6 7 8 0.0
3 9 10 11 0.0
4 12 13 14 0.0
... ... ... ... ...
94 282 283 284 90.0
95 285 286 287 90.0
96 288 289 290 90.0
97 291 292 293 90.0
98 294 295 296 90.0
第二,用 groupby分割它:
for index, group_df in df.groupby('groups'):
print(index) # this is the number eg: 0,10,20...
print(group_df) # this is the dataframe from index to index +10 / last item

关于python - 一次获取(最多)N 行 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68346772/

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