我有一个非常大的数据帧(大约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 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 文件将是一场噩梦,因此请不要对编号工作表之类的东西提出建议。
非常感谢您,这个网站对我的编码之旅非常宝贵。
-斯蒂芬