我有很多行表示他们在
创建的时间 'Fri Sep 19 17:27:16 blah blah'
'Fri Sep 19 17:14:28 blah blah'
'Fri Sep 19 17:11:51 blah blah'
.
.
.
一个月有数千行,每天有几十行
我想把它们分成白天分组。我应该使用哪种功能?
答案 0 :(得分:0)
itertools.groupby(rowlist, key=lambda row: row[0:10])
答案 1 :(得分:0)
您的问题不明确,但假设您的列中包含时间值为字符串而另一列为某些arbritrary值,则在加载后您需要转换日期'到日期时间dtype然后你可以在日期分组:
In [109]:
# load some data
import io
import pandas as pd
t="""Fri Sep 19 17:27:16,blah blah
Fri Sep 20 17:14:28,blah blah
Fri Sep 19 17:11:51,blah blah"""
df = pd.read_csv(io.StringIO(t), header=None, names=['date', 'value'])
df
Out[109]:
date value
0 Fri Sep 19 17:27:16 blah blah
1 Fri Sep 20 17:14:28 blah blah
2 Fri Sep 19 17:11:51 blah blah
In [110]:
# convert the datetime string
df['date'] = pd.to_datetime(df['date'])
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 3 entries, 0 to 2
Data columns (total 2 columns):
date 3 non-null datetime64[ns]
value 3 non-null object
dtypes: datetime64[ns](1), object(1)
memory usage: 72.0+ bytes
In [113]:
# group on the date
df.groupby(df['date'].dt.date)['value'].max()
Out[113]:
2015-09-19 blah blah
2015-09-20 blah blah
Name: value, dtype: object
因此,上面使用to_datetime
转换日期时间str,然后使用groupby
转换日期&#39;的date
属性。我在这里打电话max
只是为了表明它区分不同的日期。