1 python excel python-3.x pandas
询问之前使用的来源:
Pandas:遍历 DataFrame 列表并将每个导出到 Excel 表
我设法做到了这一切:
# sort the dataframe
df.sort(columns=['name'], inplace=True)
# set the index to be this and don't drop
df.set_index(keys=['name'], drop=False,inplace=True)
# get a list of names
names=df['name'].unique().tolist()
# now we can perform a lookup on a 'view' of the dataframe
joe = df.loc[df.name=='joe']
# now you can query all 'joes'
Run Code Online (Sandbox Code Playgroud)
我设法完成了这项工作 -joe = df.loc[df.name=='joe']它给出了我正在寻找的确切结果。
作为使其适用于大量数据的解决方案,我发现了这个潜在的解决方案。
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)
目前我有:
teacher_names = ['Teacher A', 'Teacher B', 'Teacher C']
Run Code Online (Sandbox Code Playgroud)
df =
ID Teacher_name Student_name
Teacher_name
Teacher A 1.0 Teacher A Student 1
Teacher A NaN Teacher A Student 2
Teacher B 0.0 Teacher B Student 3
Teacher C 2.0 Teacher C Student 4
Run Code Online (Sandbox Code Playgroud)
如果我使用 - test = df.loc[df.Teacher_name=='Teacher A']- 将收到确切的结果。
问题:如何优化它会自动将“测试”结果保存到(每个老师单独的.to_excel(writer, sheet_name=Teacher_name)带有老师姓名的excel文件(),并且会为数据库中所有现有的老师做?
这应该对你有用。你快到了,你只需要迭代names列表并每次过滤你的数据框。
names = df['name'].unique().tolist()
writer = pandas.ExcelWriter("MyData.xlsx", engine='xlsxwriter')
for myname in names:
mydf = df.loc[df.name==myname]
mydf.to_excel(writer, sheet_name=myname)
writer.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4939 次 |
| 最近记录: |