首页 > 解决方案 > Python pandas excel输出不是确定的形式

问题描述

我有一个 100 张的 Excel 文件。我需要从第 7 行开始从每个工作表列 P 中提取数据并创建一个新文件,其中所有提取的数据都在同一列中。在我的输出文件中,数据位于不同的列中,即(表 2 的数据位于 R 列,表 3 的数据位于 B 列)

如何使新输出 Excel 中同一列中的数据?谢谢你。

附言。将所有工作表的 P 列数据组合成单个工作表中的单个列对我来说就足够了

import pandas as pd
import os 
Flat_Price = "Flat Pricing.xlsx"
dfs = pd.read_excel(Flat_Price, sheet_name=None, usecols = "P", skiprows=6, indexcol=1, sort=False)
df = pd.concat(dfs)
print(df)
writer = pd.ExcelWriter("Output.xlsx")
df.to_excel(writer, "Sheet1")
writer.save()
print (os.path.abspath("Output.xlsx"))

标签: pythonexcelpandas

解决方案


您需要header=None默认 0 列名的参数:

dfs = pd.read_excel(Flat_Price, 
                    sheet_name=None, 
                    usecols = "P", 
                    skiprows=6, 
                    indexcol=1, 
                    header=None)

然后可以从 的第一级中提取数字MultiIndex,转换为整数并按以下方式排序sort_index

df =df.set_index([df.index.get_level_values(0).str.extract('(\d+)',expand=False).astype(int), 
                  df.index.get_level_values(1)]).sort_index()

推荐阅读