读入xlsx文件后没有返回列名

时间:2017-01-25 01:05:11

标签: python excel pandas dataframe ipython

您好我有xlsx文件,并使用pandas将它们合并为一个数据帧。它工作但不是取回我在xlsx文件中的列名,而是将数字作为列而不是列标题成为一行:像这样:

 Output:      1           2           3
            COLTITLE1    COLTITLE2     COLTITLE3

当它们应该是这样的时候:

Output: COLTITLE1     COLTITLE2      COLTITLE3

列标题不是列标题,而是它们已成为一行。如何获取xlsx文件中的正确列名。为清楚起见,xlsx文件中的所有列名都相同。帮助将不胜感激下面的代码:

# import modules
from IPython.display import display
import pandas as pd
import numpy as np
pd.set_option("display.max_rows", 999)
pd.set_option('max_colwidth',100)
%matplotlib inline

# filenames
file_names = ["data/OrderReport.xlsx", "data/OrderReport2.xlsx"]

# read them in
excels = [pd.ExcelFile(name) for name in file_names]

# turn them into dataframes
frames = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in excels]

# concatenate them
atlantic_data = pd.concat(frames)

# write it out
combined.to_excel("c.xlsx", header=False, index=False)

1 个答案:

答案 0 :(得分:2)

我希望我能正确理解你的问题。你只需要摆脱index_col=None,它将像往常一样返回列名:

frames = [x.parse(x.sheet_names[0], header=None) for x in excels]

如果你添加index_col=None pandas会将你的列名称视为1行数据,而不是数据帧的列。