需求:
excel文件中包含多年数据,其中一列列名为"年",要保存一个新excel,将年数值不同的行保存在不同的sheet文件中,每个sheet文件第一行仍为原数据第一行,并且每个sheet名为对应的年的值。
python
import pandas as pd
# Replace 'input_file.xlsx' and 'output_file.xlsx' with your actual file paths
input_file = 'input_file.xlsx'
output_file = 'output_file.xlsx'
# Read the Excel file
df = pd.read_excel(input_file)
# Print the column names
print("Column names:", df.columns)
# Update the column name based on the actual column name in your Excel file
# For example, if the column name is 'Year', replace '年' with 'Year'
column_name = '年' # Update this to the actual column name
grouped = df.groupby(column_name)
# Create a new Excel writer
with pd.ExcelWriter(output_file, engine='xlsxwriter') as writer:
# Iterate over groups and save each group to a separate sheet
for group_name, group_df in grouped:
# Create a new sheet with the group name
group_df.to_excel(writer, sheet_name=str(group_name), index=False, header=True)
# Get the worksheet and add a header row
worksheet = writer.sheets[str(group_name)]
worksheet.write_string(0, 0, df.columns[0]) # assuming the first column is the header
# Print a message
print(f"Data has been saved to {output_file}")