Python 2.7 从日期时间和绘图中查找事件
Python 2.7 Find occurences from datetime and plot
因为我在其他地方找不到这个话题,所以我会在这里问。我正在从 CSV 文件中获取数据,我在其中一列中写入了日期时间格式。我使用 pandas 模块获得该列,然后我需要计算特定时间段中的出现次数并使用 matplotlib 绘制它。您可以在下面看到列的示例。
Time and Date
0 2015-08-21 10:51:06.398000
1 2015-08-21 10:51:00.017000
2 2015-08-21 10:52:06.402000
3 2015-08-21 10:54:06.407000
...
我知道如何分配时间:
pd.date_range("10:50", "12:30", freq="1min").time
但是我如何分配我从 CSV 中读取的值的出现次数,然后绘制它呢?任何建议或指示都会有所帮助。
很难说出您想要什么,因为您还没有发布所需的输出,但如果我理解正确的话,您想要计算一定长度的时间间隔内的行数。您可以通过组合 resample
和 len
来完成此操作。要使用 resample
,首先将索引设置为 'Time and Date
:
df.set_index('Date and Time', drop=False)
请注意,仅当数据框没有其他列时才需要 drop=False
。
然后要获取每个 1 分钟间隔内的行数,请执行
counts = df.resample('1min', len).astype(int)
如果有多个日期并且您想对日期中每个时间间隔的计数求和,请执行
counts.groupby(lambda ts: ts.time()).sum()
因为我在其他地方找不到这个话题,所以我会在这里问。我正在从 CSV 文件中获取数据,我在其中一列中写入了日期时间格式。我使用 pandas 模块获得该列,然后我需要计算特定时间段中的出现次数并使用 matplotlib 绘制它。您可以在下面看到列的示例。
Time and Date
0 2015-08-21 10:51:06.398000
1 2015-08-21 10:51:00.017000
2 2015-08-21 10:52:06.402000
3 2015-08-21 10:54:06.407000
...
我知道如何分配时间:
pd.date_range("10:50", "12:30", freq="1min").time
但是我如何分配我从 CSV 中读取的值的出现次数,然后绘制它呢?任何建议或指示都会有所帮助。
很难说出您想要什么,因为您还没有发布所需的输出,但如果我理解正确的话,您想要计算一定长度的时间间隔内的行数。您可以通过组合 resample
和 len
来完成此操作。要使用 resample
,首先将索引设置为 'Time and Date
:
df.set_index('Date and Time', drop=False)
请注意,仅当数据框没有其他列时才需要 drop=False
。
然后要获取每个 1 分钟间隔内的行数,请执行
counts = df.resample('1min', len).astype(int)
如果有多个日期并且您想对日期中每个时间间隔的计数求和,请执行
counts.groupby(lambda ts: ts.time()).sum()