本帖最后由 wushaominkk 于 2024-3-16 08:42 编辑
以前经常碰到对excel表格重新排序的问题,尤其是所有行都颠倒排序, 比如五行:原来是 第一行、第二行、第三行、第四行和第五行,需要重新排序为第五行、第四行、。。。第一行。
如果顺序是排好序的还好,使用excel菜单中功能可以做到,但是如果没有顺序需要颠倒过来比较麻烦,我往往在空白列拉一串1到N的数字,再使用excle功能根据这列重新排序,完成后再删除该列,非常麻烦。
后来想使用python编写一段程序实现,试用很好,可以针对有首行和无首行两种不同处理。分享一下代码,欢迎拍砖。另外是否excel中有这种所有行倒序的命令也欢迎告知。感谢。
[Python] 纯文本查看 复制代码 import pandas as pd
# 读取Excel文件
file_path = 'test.xls' # 替换为需要排序的Excel文件路径
sheet_name = 'Sheet1' # 替换为需要排序的工作表名称,如果是第一个工作表,通常默认是'Sheet1'
#df = pd.read_excel(file_path, sheet_name=sheet_name) #有标题行的排序文件读取
df = pd.read_excel(file_path, header=None) #无标题行的排序文件读取
# 颠倒行的顺序
df_reversed = df.iloc[::-1]
# 将颠倒后的DataFrame保存回新的Excel文件,或者覆盖原文件
# 保存到新文件
output_file_path = 'reversed_excel_file.xlsx' # 新的Excel文件路径
df_reversed.to_excel(output_file_path, index=False, sheet_name=sheet_name)
# 如果想覆盖原文件,可以直接使用原文件路径
# df_reversed.to_excel(file_path, index=False, sheet_name=sheet_name)
print("Excel表格的行顺序已颠倒并保存。") |