2016-02-05 1 views
1

Я пытаюсь объединить несколько dataframes, в каждом кадре данных, таких, какОбъединение dataframe строки, которые имеют смещение (генерируется в тот же день, но несущие другую временную метку)

timestamp cap 
0 1387118554000 3488670 
1 1387243928000 1619159 
2 1387336027000 2191987 
3 1387435314000 4299421 
4 1387539459000 9866232 

Каждое значение представляет ежедневно сгенерированные данные , однако каждое значение не генерировалось в той же миллисекунде, чтобы метки времени не сливались. Мне нужен способ конвертировать метку времени в компоненты года, месяца и дня. Тогда я смогу объединить свои наборы данных (если нет другого способа решить такую ​​проблему).

ответ

1

Вы можете попробовать to_datetime:

print pd.to_datetime(df['timestamp'], unit='ms') 
0 2013-12-15 14:42:34 
1 2013-12-17 01:32:08 
2 2013-12-18 03:07:07 
3 2013-12-19 06:41:54 
4 2013-12-20 11:37:39 
Name: timestamp, dtype: datetime64[ns] 

df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms') 
print df 
      timestamp  cap 
0 2013-12-15 14:42:34 3488670 
1 2013-12-17 01:32:08 1619159 
2 2013-12-18 03:07:07 2191987 
3 2013-12-19 06:41:54 4299421 
4 2013-12-20 11:37:39 9866232 

Затем вы можете использовать dt.date:

df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms').dt.date 
print df 
    timestamp  cap 
0 2013-12-15 3488670 
1 2013-12-17 1619159 
2 2013-12-18 2191987 
3 2013-12-19 4299421 
4 2013-12-20 9866232 

Или dt.strftime:

df['timestamp1'] = pd.to_datetime(df['timestamp'], unit='ms').dt.strftime('%Y-%m-%d') 
print df 
Int64Index([0, 1, 2, 3, 4], dtype='int64') 
     timestamp  cap timestamp1 
0 1387118554000 3488670 2013-12-15 
1 1387243928000 1619159 2013-12-17 
2 1387336027000 2191987 2013-12-18 
3 1387435314000 4299421 2013-12-19 
4 1387539459000 9866232 2013-12-20 
+0

Ах да хорошая идея, но мы вернуть суточную временную метку поэтому он находится в форме «2013-12-15», тогда я смогу объединить –

+0

, но мы должны вернуть * Как мы можем конвертировать в год только год-месяц? –

+0

Спасибо, человек, это была отличная идея. –