Как указать день при использовании панды datetime? - PullRequest
0 голосов
/ 18 февраля 2019

Скажите, у меня есть этот фрейм данных:

Index      ID   V1  V2
00:00:00   K1   3   4
00:00:00   K2   4   3
00:00:00   K17  2   5
00:00:00   K11  8   6

, и я хочу превратить индекс в дату:

df.index = pd.to_datetime(df.index)

Это назначит столбцу индекса сегодняшнюю дату:

Index                 ID   V1  V2
2019-02-18 00:00:00   K1   3   4
2019-02-18 00:00:00   K2   4   3
2019-02-18 00:00:00   K17  2   5
2019-02-18 00:00:00   K11  8   6

Можно ли каким-либо образом назначить конкретную строку год-месяц-день, которая не меняется каждый раз при создании кадра данных?Часовая метка должна остаться.

1 Ответ

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

Одним из возможных решений является преобразование значений в timedeltas и добавление Timestamp:

df.index = pd.to_timedelta(df.index) + pd.Timestamp('2015-01-20')
print (df)
             ID  V1  V2
Index                  
2015-01-20   K1   3   4
2015-01-20   K2   4   3
2015-01-20  K17   2   5
2015-01-20  K11   8   6

При необходимости установите новые Timestamp одинаковые во всех значениях индекса:

df.index = np.repeat(pd.Timestamp('2015-01-20'), len(df))
print (df)
             ID  V1  V2
2015-01-20   K1   3   4
2015-01-20   K2   4   3
2015-01-20  K17   2   5
2015-01-20  K11   8   6

Время не отображается, потому что 0, но каждый Timestamp содержит его:

print (df.index.tolist())
[Timestamp('2015-01-20 00:00:00'), Timestamp('2015-01-20 00:00:00'), 
 Timestamp('2015-01-20 00:00:00'), Timestamp('2015-01-20 00:00:00')]

Единственным способом является повторное представление строки меток времени:

df.index = np.repeat('2015-01-20 00:00:00', len(df))
print (df)
                      ID  V1  V2
2015-01-20 00:00:00   K1   3   4
2015-01-20 00:00:00   K2   4   3
2015-01-20 00:00:00  K17   2   5
2015-01-20 00:00:00  K11   8   6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...