我正在读取一个大约有2000张熊猫的Excel文件。自从我使用以下命令以来,Excel工作表就作为有序词典加载:
test = pd.read_excel('test.xlsx', sheet_name=None)
我想修改工作表的名称,然后将有序词典再次保存到excel文件中。工作表的名称存储为“有序词典”的键,因此基本上我只想修改键并再次保存为excel。
[可以注意到,密钥的名称以一年结尾,即2020、2022等。我希望对所有密钥进行修改,以使其减少1,所以密钥的名称现在为2019, 2021等。我还想确保内容没有改变;意味着以前分配给A.AA.XX2020的数据帧现在已分配给A.AA.XX2019。 “常规”表不必修改。
由于excel文件中有很多工作表,因此,我希望使用自动化程序。
我希望以下内容能满足您的需求:
import pandas as pd
# read excel workbook
test = pd.read_excel('test.xlsx', sheet_name=None)
# get keys from dict without 'General'
keys = list(test.keys())
keys.remove('General')
# iterate over keys
for key in keys:
# get the old year
year_old = int(key[-4:])
# make the new year
year_new = year_old - 1
# create name for new key
key_new = key[:-4] + str(year_new)
# copy values from old key in new key and delete old key
test[key_new] = test.pop(key)
# write dataframes from dicts in one Excel workbook with new worksheet names
with pd.ExcelWriter('test_new.xlsx') as writer:
for sheet_name, df in test.items():
df.to_excel(writer, sheet_name=sheet_name)