将 Excel 文件附加到 Python DataFrame
Appending Excel files to Python DataFrame
下面的代码遍历 Regis 文件夹中的 excel 文件,并将它们附加到一个新的 DataFrame 中。我需要对代码进行以下更改:
- 数据从第 7 列开始,所以我不需要附加每个 Excel 文件的前 6 行
- 每个 Excel Sheet 在文件名末尾都有一个日期,例如“Regis 30012022”最后8位数字是日期(欧洲格式)我想添加一列以便我知道数据指的是哪个日期。此日期应添加到 A 列。
import pandas as pd
import glob
# path of the folder
path = r'Regis'
# reading excel files
filenames = glob.glob(path + "\*.xlsx")
print('File names:', filenames)
# initializing empty data frame
finalexcelsheet = pd.DataFrame()
# interating through all excel files
for file in filenames:
# combining multiple excel worksheets into single data frames
df = pd.concat(pd.read_excel(file, sheet_name=None), ignore_index=True, sort=False)
# appending excel files one by one
finalexcelsheet = finalexcelsheet.append(df, ignore_index=True)
finalexcelsheet.to_excel(r'Final.xlsx', index=False)
对于第一点,您可以在阅读文件时添加参数skiprows
:
df = pd.concat(pd.read_excel(file, sheet_name=None, skiprows = 6), ignore_index=True, sort=False)
对于第二期,我会做以下事情:
for file in filenames:
temp_df = pd.read_excel(file, sheet_name=None, skiprows=6)
date_string = "".join(character for character in file if character.isdigit())
date = datetime.datetime.strptime(date_string, "%d%M%Y")
temp_df["date"]= date
df = pd.concat(temp_df, ignore_index=True, sort=False)
# appending excel files one by one
finalexcelsheet = finalexcelsheet.append(df, ignore_index=True)
这是读取 excel 文件,根据文件名创建日期时间对象,并在使用 concat 之前使用该日期时间对象为 temp_df
创建一个新列。
下面的代码遍历 Regis 文件夹中的 excel 文件,并将它们附加到一个新的 DataFrame 中。我需要对代码进行以下更改:
- 数据从第 7 列开始,所以我不需要附加每个 Excel 文件的前 6 行
- 每个 Excel Sheet 在文件名末尾都有一个日期,例如“Regis 30012022”最后8位数字是日期(欧洲格式)我想添加一列以便我知道数据指的是哪个日期。此日期应添加到 A 列。
import pandas as pd
import glob
# path of the folder
path = r'Regis'
# reading excel files
filenames = glob.glob(path + "\*.xlsx")
print('File names:', filenames)
# initializing empty data frame
finalexcelsheet = pd.DataFrame()
# interating through all excel files
for file in filenames:
# combining multiple excel worksheets into single data frames
df = pd.concat(pd.read_excel(file, sheet_name=None), ignore_index=True, sort=False)
# appending excel files one by one
finalexcelsheet = finalexcelsheet.append(df, ignore_index=True)
finalexcelsheet.to_excel(r'Final.xlsx', index=False)
对于第一点,您可以在阅读文件时添加参数skiprows
:
df = pd.concat(pd.read_excel(file, sheet_name=None, skiprows = 6), ignore_index=True, sort=False)
对于第二期,我会做以下事情:
for file in filenames:
temp_df = pd.read_excel(file, sheet_name=None, skiprows=6)
date_string = "".join(character for character in file if character.isdigit())
date = datetime.datetime.strptime(date_string, "%d%M%Y")
temp_df["date"]= date
df = pd.concat(temp_df, ignore_index=True, sort=False)
# appending excel files one by one
finalexcelsheet = finalexcelsheet.append(df, ignore_index=True)
这是读取 excel 文件,根据文件名创建日期时间对象,并在使用 concat 之前使用该日期时间对象为 temp_df
创建一个新列。