Как мне группировать по кадру данных на основе первого столбца после разделения данных на двоеточие? В этом примере мне нужно разделить на последнее время столбца и группу за часом.Нарезка по группам по
from StringIO import StringIO
myst="""india, 905034 , 19:44
USA, 905094 , 19:33
Russia, 905154 , 21:56
"""
u_cols=['country', 'index', 'current_tm']
myf = StringIO(myst)
import pandas as pd
df = pd.read_csv(StringIO(myst), sep=',', names = u_cols)
Этот запрос не возвращает ожидаемые результаты:
df[df['index'] > 900000].groupby([df.current_tm]).size()
current_tm
21:56 1
19:33 1
19:44 1
dtype: int64
Оно должно быть:
21 1
19 2
Время в формате чч: мм, но панды рассматривать его как строку.
Есть ли какая-нибудь утилита, которая преобразует SQL-запрос в эквивалент pandas? (Что-то вроде querymongo.com, который поможет пользователям MongoDB)
Ваш df неверен, у вас есть встроенные пространства в столбце current_tm: 'В [109]: current_tm df ['current_tm']. Tolist() Out [109]: ['19:44', '19:33', '21:56'] 'Вам нужно исправить это, а затем вы можете начните думать о получении часового компонента – EdChum