我有一個 DataFrame,我想通過將行加一直到ScoreDataFrame 的列總和大于 50,000 來分割成許多 DataFrame。一旦滿足該條件,我就想開始一個新的切片。
這是一個可能看起來像這樣的示例:

uj5u.com熱心網友回復:
累計求和Score,將其除以 50,000,然后將其向上移動一個單元格(因為您希望每個組都 > 50,000 而不是 < 50,000)。
import pandas as pd
import numpy as np
# Generating DataFrame with random data
df = pd.DataFrame(np.random.randint(1,60000,15))
# Creating new column that's a cumulative sum with each
# value floor divided by 50000
df['groups'] = df[0].cumsum() // 50000
# Values shifted up one and missing values filled with the maximum value
# so that values at the bottom are included in the last DataFrame slice
df.groups = df.groups.shift(-1, fill_value=df.groups.max())
然后根據這個答案,您可以pandas.DataFrame.groupby在串列推導中使用來回傳拆分資料幀的串列。
df_list = [df_slice for _, df_slice in df.groupby(['groups'])]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474991.html
