使用Excel文件和熊猫按日期排序

时间:2019-10-05 21:21:25

标签: python pandas

我正在尝试按日期列对Excel文件进​​行排序。当代码运行时,它将单元格从文本字符串转换为时间日期并进行排序,但仅在同一月份内进行。也就是说,当我有十月和九月的日期时,它会在一个月之内完成。

我遍及Google和YouTube。

import pandas as pd
import datetime
from datetime import timedelta

x = datetime.datetime.now()

excel_workbook = 'data.xlsx'
sheet1 = pd.read_excel(excel_workbook, sheet_name='RAW DATA')

sheet1['Call_DateTime'] = pd.to_datetime(sheet1['Call_DateTime'])

sheet1.sort_values(sheet1['Call_DateTime'], axis=1, ascending=True, inplace=True)

sheet1['SegmentDuration'] = pd.to_timedelta(sheet1['SegmentDuration'], unit='s')

sheet1['SegmentDuration'] = timedelta(hours=0.222)

sheet1.style.apply('h:mm:ss', column=['SegmentDuration'])

sheet1.to_excel("S4x Output"+x.strftime("%m-%d")+".xlsx", index = False)

print("All Set!!")

我希望它按从旧到新的顺序排序。

1 个答案:

答案 0 :(得分:0)

更新代码即可,并且有效。

import pandas as pd
import datetime
from datetime import timedelta

x = datetime.datetime.now()

excel_workbook = 'data.xlsx'
sheet1 = pd.read_excel(excel_workbook, sheet_name='RAW DATA')

sheet1['Call_DateTime'] = pd.to_datetime(sheet1['Call_DateTime'])

sheet1.sort_values(['Call_DateTime'], axis=0, ascending=True, inplace=True)

sheet1['SegmentDuration'] = pd.to_timedelta(sheet1['SegmentDuration'], unit='s')

sheet1['SegmentDuration'] = timedelta(hours=0.222)

sheet1.style.apply('h:mm:ss', column=['SegmentDuration'])

sheet1.to_excel("S4x Output"+x.strftime("%m-%d")+".xlsx", index = False)

print("All Set!!")