相关疑难解决方法(0)

将数据帧拆分为多个数据帧

我有一个非常大的数据帧(大约100万行)和实验数据(60个受访者).我想将数据帧拆分为60个数据帧(每个参与者的数据帧).

在数据框(称为= data)中,有一个名为"name"的变量,它是每个参与者的唯一代码.

我尝试了以下,但没有任何反应(或者不会在一小时内停止).我打算做的是将数据帧(数据)拆分成更小的数据帧并将它们附加到列表(datalist):

import pandas as pd

def splitframe(data, name='name'):

    n = data[name][0]

    df = pd.DataFrame(columns=data.columns)

    datalist = []

    for i in range(len(data)):
        if data[name][i] == n:
            df = df.append(data.iloc[i])
        else:
            datalist.append(df)
            df = pd.DataFrame(columns=data.columns)
            n = data[name][i]
            df = df.append(data.iloc[i])

    return datalist
Run Code Online (Sandbox Code Playgroud)

我没有收到错误消息,脚本似乎永远都会运行!

有一种聪明的方法吗?

python split dataframe pandas

72
推荐指数
6
解决办法
13万
查看次数

Pandas:遍历 DataFrame 列表并将每个导出到 Excel 表

试图自学编码以自动化工作中的一些乏味任务。对于任何无意的无知,我深表歉意。

我在熊猫(python 3.x)中创建了数据帧。我想将每个数据框打印到不同的 Excel 工作表。这是我拥有的 2 个数据帧,它工作得很好,但我想缩放它以循环遍历数据帧列表,以便我可以使它更具动态性。

writer = pandas.ExcelWriter("MyData.xlsx", engine='xlsxwriter')
Data.to_excel(writer, sheet_name="Data")
ByBrand.to_excel(writer, sheet_name="ByBrand")
writer.save()
Run Code Online (Sandbox Code Playgroud)

很容易,但是当需要创建 50 多张纸时,它会变得乏味。

这是我尝试过的,没有用:

writer = pandas.ExcelWriter("MyData.xlsx", engine='xlsxwriter')
List = [Data , ByBrand]
for i in List:
        i.to_excel(writer, sheet_name= i)
writer.save()
Run Code Online (Sandbox Code Playgroud)

我认为问题在于 sheet_name 字段必须是一个字符串,因为它会产生错误。但是,如果我放置 sheet_name="i",它只会使用来自 Data 的数据创建一个名为“i”的工作表,但不会迭代到 ByBrand。此外,如果工作表没有以相应的数据框命名,那么 excel 文件将是一场噩梦,因此请不要对编号工作表之类的东西提出建议。

非常感谢您,这个网站对我的编码之旅非常宝贵。

-斯蒂芬

excel python-3.x pandas xlsxwriter

3
推荐指数
1
解决办法
4351
查看次数

标签 统计

pandas ×2

dataframe ×1

excel ×1

python ×1

python-3.x ×1

split ×1

xlsxwriter ×1