有一个带有值的 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
最佳答案
您可以转换增量/减量系列
或数组
to_timedelta
并添加或减去日期时间
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
关于python - 如何按指定时间自动增加数据框列的时间并按天自动增加日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54920010/