如何拆分大型DataFrame?将1556640行DataFrame拆分为1081个小DataFrame
解决DataFrame拆分需求的方案
Hey Gilles, 我来帮你搞定这个DataFrame拆分的问题!
我先帮你捋一下拆分逻辑:你提到要把1556640行的DataFrame拆成1081个小DataFrame,我注意到你写的规则里有个小细节——如果按x1=x.iloc[1441:2880]这种带间隔的方式拆分,会导致中间的每个小DataFrame少一行,最后总行数也对不上原始数据。结合1081×1440=1556640这个完美匹配的数字来看,应该是笔误,正确的拆分应该是连续无间隔的1440行一个chunk,这样刚好覆盖所有行。
下面是实现这个需求的Python代码(假设你的原始DataFrame名为df):
import pandas as pd # 定义每个小DataFrame的行数和总个数 chunk_size = 1440 total_chunks = 1081 # 用字典存储拆分后的所有小DataFrame,方便按x0、x1...访问 split_dataframes = {} for i in range(total_chunks): # 计算每个chunk的起始和结束索引 start_idx = i * chunk_size end_idx = start_idx + chunk_size # 拆分并存储到字典中 split_dataframes[f'x{i}'] = df.iloc[start_idx:end_idx]
代码说明:
- 我们用字典
split_dataframes来保存所有拆分后的小DataFrame,键名就是你要的x0、x1直到x1080(共1081个) iloc[start_idx:end_idx]是pandas的位置索引切片,左闭右开,所以每个切片刚好包含1440行- 最后一个chunk的
end_idx会是1081×1440=1556640,刚好等于原始DataFrame的总行数,所以会自动取到最后一行,完美覆盖所有数据
如果你确实需要按你最初写的带间隔的规则拆分(虽然这样会有数据丢失或重复的问题),可以告诉我,我再帮你调整代码~
内容的提问来源于stack exchange,提问作者Gilles L
相关产品推荐
相关产品推荐

