Как автоматически увеличить столбец данных со временем на указанное время каждый и автоматически увеличить дату с днем? - PullRequest
0 голосов
/ 28 февраля 2019

имеют 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

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете преобразовать приращение / уменьшение Series или array с to_timedelta и добавлять или вычитать datetime с:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...