我想使用python的Pandas库读取一个.xlsx文件,并将数据移植到postgreSQL表。

到目前为止我所能做的就是

import pandas as pd
data = pd.ExcelFile("*File Name*")

现在我知道该步骤已经成功执行,但我想知道我如何解析已读取的excel文件,以便我可以了解excel中的数据如何映射到变量数据中的数据。 我了解到,如果我没有错,数据是一个Dataframe对象。那么我如何解析这个dataframe对象来逐行提取每一行。


当前回答

为文件分配电子表格文件名

负载电子表格

打印表名

通过名称:df1将一个表加载到数据帧中

file = 'example.xlsx'
xl = pd.ExcelFile(file)
print(xl.sheet_names)
df1 = xl.parse('Sheet1')

其他回答

我没有使用表名,以防你不知道或无法打开excel文件来检入ubuntu(在我的例子中,Python 3.6.7, ubuntu 18.04),我使用参数index_col (index_col=0对于第一个表)

import pandas as pd
file_name = 'some_data_file.xlsx' 
df = pd.read_excel(file_name, index_col=0)
print(df.head()) # print the first 5 rows
pd.read_excel(file_name) 

有时这段代码给出xlsx文件的错误:XLRDError:Excel xlsx文件;不支持

相反,您可以使用openpyxl引擎读取excel文件。

df_samples = pd.read_excel(r'filename.xlsx', engine='openpyxl')

我通常为每个表创建一个包含DataFrame的字典:

xl_file = pd.ExcelFile(file_name)

dfs = {sheet_name: xl_file.parse(sheet_name) 
          for sheet_name in xl_file.sheet_names}

更新:在pandas 0.21.0+版本中,通过将sheet_name=None传递给read_excel,可以更清晰地获得此行为:

dfs = pd.read_excel(file_name, sheet_name=None)

在0.20和更早的版本中,这是sheetname而不是sheet_name(现在不推荐使用上面的):

dfs = pd.read_excel(file_name, sheetname=None)

如果在使用open()函数打开的文件上使用read_excel(),请确保将rb添加到open函数中以避免编码错误

为文件分配电子表格文件名

负载电子表格

打印表名

通过名称:df1将一个表加载到数据帧中

file = 'example.xlsx'
xl = pd.ExcelFile(file)
print(xl.sheet_names)
df1 = xl.parse('Sheet1')