python - 如何将一个 DataFrame 拆分为多个行数更少的 DataFrame?
问题描述
如果我有一个DataFrame
由 100 行和 4 列组成的示例,我如何创建 5 个新DataFrames
的,每个由 20 行和 4 列组成?
也就是说,如果原始的任意列DataFrame
包含列表[0, 1, 2, 3, ..., 98, 99]
,我将如何创建 5 个新列DataFrames
以使第一个DataFrame
任意列包含列表[0, 1, 2, ..., 9]
,第二个DataFrame
任意列包含列表[10, 11, 12, ..., 19]
等等?
我尝试了以下由包含列表DataFrame
的单列组成的方法,但它给了我 100 个文件,每个文件只有一行,而不是所需的 5 个 CS V 文件,每个文件有 20 行:A
[0, 1, 2, 3, ..., 98, 99]
CSV
enter code here
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
推荐阅读
- python-3.x - 如何在 python 中解决这个 hsl 到 rgb 反之亦然颜色转换错误?
- java - 如何检查 File 是否是 Java 类
- flutter - 如何在飞镖中正确创建文件?
- java - 试图在 Java 中拆分列表,但我对索引混乱感到目瞪口呆
- flutter - 如何从服务器保存图像并显示?
- flutter - 如何从 Flutter 中的 GestureDetector 中排除小部件
- google-sheets - FILTER 范围必须是单行或单列。尝试一次跨多个列应用条件时
- python - Tensorflow sigmoid 回归保持线性
- python - 无法通过 python 请求从 reddit api 获取访问令牌
- java - 为什么 JOOQ 的 fetchOneInto(Pojo.class) 只设置 id 字段,而其他字段为空?