отдельный набор данных по дням с пандами - PullRequest
0 голосов
/ 15 октября 2018

У меня есть набор данных, который выглядит следующим образом:

"2018-05-30 21:26:43",20.61129150,-100.40933971
"2018-05-30 21:26:43",20.61127415,-100.41146822
"2018-06-02 21:56:12",21.15633228,-100.93766080
"2018-06-05 22:57:40",20.59734201,-100.38091286
"2018-06-05 22:57:40",20.59875096,-100.37821426
"2018-06-06 20:56:22",20.61278120,-100.38446619
"2018-06-06 20:56:22",20.59865452,-100.37827264
"2018-06-06 21:57:15",20.59862012,-100.37817348
"2018-06-06 21:57:15",20.59864713,-100.37821263
"2018-06-06 21:57:15",20.59862915,-100.37825902
"2018-06-07 15:54:29",20.61280757,-100.39768857
"2018-06-07 15:54:29",20.61276216,-100.39769379

Я хочу разделить свои данные на дневные группы, чтобы я мог рассчитать расстояния и получить среднее расстояние, пройденное за день.

В настоящее время я разделяю его на свой столбец даты следующим образом:

col_names = ['date', 'latitude', 'longitude']
df = pd.read_csv('marco.csv', names=col_names, sep=',', skiprows=1)

# merge
m = df.reset_index().merge(df.reset_index(), on='date')

Однако я хотел бы разделить его по дням, чтобы я получил индексы

2018-05-30, 2018-06-05, 2018-06-06, 2018-06-07

Как бы я подошел к этой проблеме?

1 Ответ

0 голосов
/ 15 октября 2018

Как уже упоминал Юка, группа должна сделать свое дело.Я бы создал новый столбец с именем «день», который будет содержать только день с вашей отметки времени, отсортирован по дате, сгруппирован по «дате», а затем вычислю расстояние, пройденное в каждой группе.

import pandas as pd

a = pd.DataFrame(
    [["2018-05-30 21:26:43",20.61129150,-100.40933971],
    ["2018-05-30 21:26:43",20.61127415,-100.41146822],
    ["2018-06-02 21:56:12",21.15633228,-100.93766080],
    ["2018-06-05 22:57:40",20.59734201,-100.38091286]], 
    columns=['date', 'lat', 'lng'])

a['date'] = pd.to_datetime(a['date'])


a['day'] = a['date'].dt.date

b = a.groupby('day')

# Loop over the groups and do whatever calculation you need
for tup in b:
    group = tup[0]
    df = tup[1]
    print df['lat'].sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...