繁体   English   中英

如何将 DataFrame 拆分为多个行数更少的数据帧?

[英]How can I split a DataFrame into multiple DataFrames of fewer rows?

例如,如果我有一个由 100 行和 4 列组成的DataFrame ,我如何创建 5 个新的DataFrames ,每个数据帧由 20 行和 4 列组成?

也就是说,如果原始DataFrame的任意列包含列表[0, 1, 2, 3, ..., 98, 99] ,我将如何创建 5 个新的DataFrames ,以便第一个DataFrame的任意列包含列表[0, 1, 2, ..., 9] ,第二个DataFrame的任意列包含列表[10, 11, 12, ..., 19]等等?

我尝试对DataFrame进行以下操作,其中包含包含列表[0, 1, 2, 3, ..., 98, 99]的单列A ,但它给了我 100 个CSV文件,每个文件只有一行,而不是所需的 5 CS enter code here V 文件,每个文件有 20 行:

import pandas as pd
import numpy as np
list = []
for i in range (0, 100):
    list.append(i)

df = pd.DataFrame(data=list, columns=['A'])
groups = df['A'].groupby(np.arange(len(df['A']/10)))
for (frameno, frame) in groups:
    frame.to_csv("/Users/ephemeralhappiness/Desktop/Cycle Test/" + "%s.csv" % frameno)

只需将您的 groupby 更改为:

# to get 5 groups
nrows = 20
groups = df.groupby(df.index // nrows)

print(groups.ngroups)
5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM