0

我有大约 50 张带有 .'xlsb' 扩展名的 excel 表。我想将特定工作表连接到 pandas DataFrame(所有工作表名称都相同)。我遇到的问题是每个工作表中的列名并不完全相同。我使用熊猫编写了一个代码,但它的工作方式是将所有值连接到熊猫数据框中的同一列中,但基于列的名称。例如:有时我有一个名为:FgsNr 的列,有时是 FgNr - 两列中的数据类型和含义完全相同,我希望将它们放在数据框中的同一列中,但 pandas 创建以分隔数据框中的列并仅将列中列出的具有相同名称的值堆叠在一起。

files = glob(r'C:\Users\Folder\*xlsb')

for file in files:
    Datafile = pd.concat(pd.read_excel(file, engine='pyxlsb', sheet_name='Sheet1', usecols='A:F', header=0) for file in files)

我如何更正代码,以便它复制并连接基于 excel 中的列的所有值,同时忽略列的名称?

4

1 回答 1

1

当连接具有相同格式的多个数据帧时,您可以使用以下代码段来提高速度和效率。

基本逻辑是将它们放入一个列表中,然后在最后阶段进行连接。

files = glob(r'C:\Users\Folder\*xlsb')
dfs = []
for file in files:
    df = pd.read_excel(file, engine='pyxlsb', sheet_name='Sheet1', usecols='A:F', header=0)
    dfs.append(df)
large_df = pd.concat(dfs, ignore_index=True)

另请参阅以下内容: 创建一个空的 Pandas DataFrame,然后填充它?

于 2021-08-10T14:38:50.373 回答