具有包含值的df
0 | 1
2019-02-22 13:40:58| sun
2019-02-22 13:40:58| earth
2019-02-22 13:40:58| mercury
2019-02-22 13:40:58| moon
2019-02-22 13:40:58| mars
2019-02-22 13:40:58| jupyter
1。如何在每种情况下自动将时间增加一分钟
所需的输出1。
0 | 1
2019-02-22 13:41:58| sun
2019-02-22 13:42:58| earth
2019-02-22 13:43:58| mercury
2019-02-22 13:44:58| moon
2019-02-22 13:45:58| mars
2019-02-22 13:46:58| jupyter
2。通过使用此功能,我们可以在
之间添加日期df[0] = pd.to_datetime(df[0], unit='ms').dt.strftime('%Y-%m-%d %a %H:%M:%S')
结果
2019-02-08 Fri 12:19:06
如何同时增加这些值
输出2(包括日期)
0 | 1
2019-02-17 sun 13:41:58| sun
2019-02-18 mon 13:42:58| earth
2019-02-19 tue 13:43:58| mercury
2019-02-20 wed 13:44:58| moon
2019-02-21 thur 13:45:58| mars
2019-02-22 fri 13:46:58| jupyter
答案 0 :(得分:1)
您可以转换Series
或array
的{{3}}的增减,并加上或减去datetime
的s:
df[0] = pd.to_datetime(df[0], unit='ms')
如果需要为每个唯一的日期时间增加和减少分钟和天:
s1 = pd.to_timedelta(df.groupby(0).cumcount() + 1, unit='m')
s2 = pd.to_timedelta(df.groupby(0).cumcount(ascending=False), unit='d')
或者第一列中所有相同的日期时间:
s1 = pd.to_timedelta(np.arange(1, len(df) + 1), unit='m')
s2 = pd.to_timedelta(np.arange(len(df)-1,-1, -1), unit='d')
df[0] = (df[0] + s1 - s2).dt.strftime('%Y-%m-%d %a %H:%M:%S')
print (df)
0 1
0 2019-02-17 Sun 13:41:58 sun
1 2019-02-18 Mon 13:42:58 earth
2 2019-02-19 Tue 13:43:58 mercury
3 2019-02-20 Wed 13:44:58 moon
4 2019-02-21 Thu 13:45:58 mars
5 2019-02-22 Fri 13:46:58 jupyter