[英]update Pandas DataFrame time column based on a date range
我上传了一个大文件并为其创建了一个 DataFrame。
现在我想更新一些包含时间戳的列,并在可能的情况下更新带有基于该时间戳的日期的列。
原因是我想调整夏令时,而我正在使用的列表是 GMT 时间,所以我需要调整它的时间戳。
有效的例子:
df_winter2['Confirmation_Time'] = pd.to_datetime(df_winter2['Confirmation_Time'].astype(str)) + pd.DateOffset(hours=7)
df_summer['Confirmation_Time'] = pd.to_datetime(df_summer['Confirmation_Time'].astype(str)) + pd.DateOffset(hours=6)
我想写一个 function,首先根据是夏季还是冬季将 6 或 7 小时添加到 DataFrame。
如果有可能,如果时间戳 > 16:00 + 1 天,我想更新日期列,日期列称为 df['Creation_Date']
如果是冬天,这应该适用于 function。
def wintertime(date_time):
year, month, day = dt.timetuple()[0:3]
if (month < 3) or (month == 12 and day < 21):
return True
else:
return False
现在我猜你还想遍历你的 df 并分别更新时间,你可以使用以下方法:
for i, length in enumerate (df):
date_time = df['Confirmation_Time'][i]
if wintertime(date_time):
df['Confirmation_Time'][i] = pd.to_datetime(df['Confirmation_Time'][i].astype(str)) + pd.DateOffset(hours=7)
else:
df['Confirmation_Time'][i] = pd.to_datetime(df['Confirmation_Time'][i].astype(str)) + pd.DateOffset(hours=6)
return df
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.