【发布时间】:2018-11-05 02:21:41
【问题描述】:
我有一个带有年、月、日和时间列的 Pandas 数据框,我试图将它们组合成一个只有一个日期时间对象的新列。每列中的数据类型是一个 int,包括时间列(它在 1 到 2359 之间)。例如:2015, 3, 15, 745 将是 2015 年 3 月 15 日上午 7:45。
我目前只是这样做,但在我的有 58000 行的数据帧上运行需要几分钟:
for i in range(len(flights.index)):
flights['SCHEDULED_DEPARTURE_DATETIME'][i] = datetime.datetime(
flights.iloc[i]['YEAR'],
flights.iloc[i]['MONTH'],
flights.iloc[i]['DAY'],
int(np.floor(flights.iloc[i]['SCHEDULED_DEPARTURE']/100)), #hours
flights.iloc[i]['SCHEDULED_DEPARTURE']%100 #minutes
)
必须有一种更快、更 Pythonic 的方式来执行此操作,但我似乎无法让它与 apply 一起使用。我错过了什么?
仅供参考,我的数据框是来自 Kaggle 的该数据集的一小部分:https://www.kaggle.com/usdot/flight-delays#flights.csv
【问题讨论】:
标签: python pandas datetime dataframe apply