来自仅具有日期时间信息的数据框的累积图

Cumulative plot from a Dataframe with only DateTime information

我有一个这样的 csv 文件:

2021-01-05 10:57:12.762000, REDDE EHZ AM 00, trigger
2021-01-05 10:58:26.622000, REDDE EHZ AM 00, trigger
2021-01-05 11:02:16.772000, REDDE EHZ AM 00, trigger
2021-01-05 11:02:34.042000, REDDE EHZ AM 00, trigger
2021-01-05 17:12:07.221999, REDDE EHZ AM 00, trigger
2021-01-06 01:42:45.501999, REDDE EHZ AM 00, trigger
2021-01-06 01:44:24.481999, REDDE EHZ AM 00, trigger
2021-01-06 01:44:58.051999, REDDE EHZ AM 00, trigger
2021-01-06 01:45:14.871999, REDDE EHZ AM 00, trigger
2021-01-06 01:47:10.901999, REDDE EHZ AM 00, trigger
2021-01-06 07:57:33.221999, REDDE EHZ AM 00, trigger
2021-01-06 07:57:48.821999, REDDE EHZ AM 00, trigger
2021-01-06 07:58:51.031999, REDDE EHZ AM 00, trigger
2021-01-06 07:59:27.001999, REDDE EHZ AM 00, trigger
2021-01-06 08:00:56.871999, REDDE EHZ AM 00, trigger
2021-01-06 11:28:17.191999, REDDE EHZ AM 00, trigger
2021-01-06 11:28:46.201999, REDDE EHZ AM 00, trigger
2021-01-06 11:29:19.111999, REDDE EHZ AM 00, trigger
2021-01-06 11:29:41.891999, REDDE EHZ AM 00, trigger
2021-01-06 11:30:51.901999, REDDE EHZ AM 00, trigger
2021-01-06 11:31:21.921999, REDDE EHZ AM 00, trigger
2021-01-06 11:32:23.001999, REDDE EHZ AM 00, trigger
2021-01-06 11:32:58.271999, REDDE EHZ AM 00, trigger
2021-01-07 11:33:46.891999, REDDE EHZ AM 00, trigger
2021-01-07 12:38:50.021999, REDDE EHZ AM 00, trigger
2021-01-07 12:39:53.881999, REDDE EHZ AM 00, trigger
2021-01-08 12:42:07.371999, REDDE EHZ AM 00, trigger
2021-01-08 12:42:46.441999, REDDE EHZ AM 00, trigger
2021-01-09 12:44:14.291999, REDDE EHZ AM 00, trigger

我将 header 添加为:

df = pd.read_csv(r'D:\Inves\SM\CC_Cbba\REDPy\OSCREDDE_3_\redde_3_trigs.dat',
                 sep=',', header=None, usecols=[0, 1, 2])
headers =  ["TrigDT", "Sta", "Type"]

输出为:

                       TrigDT               Sta      Type
0  2021-01-05 10:57:12.762000   REDDE EHZ AM 00   trigger
1  2021-01-05 10:58:26.622000   REDDE EHZ AM 00   trigger
2  2021-01-05 11:02:16.772000   REDDE EHZ AM 00   trigger
3  2021-01-05 11:02:34.042000   REDDE EHZ AM 00   trigger
4  2021-01-05 17:12:07.221999   REDDE EHZ AM 00   trigger
...

我在 roder 中创建了一个日期列来尝试按天对信息进行分组:

df['TrigDT'] = pd.to_datetime(df['TrigDT'])
df['Date'] = df['TrigDT'].dt.date

我尝试使用 Index 计算累加和,因为我没有带有事件计数器的列,然后我尝试按天分组但我失败了:

df = df.groupby('Date').index.sum()
df = df.groupby(df.index.day).cumsum().reset_index()

我的想法是用 DataFrame 信息创建一个累积图(带有日期的 X 轴和带有累积信息的 Y 轴),我试图绘制一个图

你介意给我一些到达 objective 的提示吗?预期的输出可能是这样的,在我的例子中只有一个名为 REDDE 的站:

谢谢

不确定我是否理解 abc 会在您的图表中准确显示的内容,但您可以通过以下方式累积每天的触发次数:

# Load the data and set 'TrigDT' as the index
df = pd.read_csv('path_to_file.csv', header=None, usecols=(0, 1, 2), names=('TrigDT', 'Sta', 'Type'))    
df.TrigDT = pd.to_datetime(df.TrigDT)
df.set_index('TrigDT', inplace=True)

# Resample to daily and count
daily_acc = df.resample('d').count().cumsum()                                                    
daily_acc.plot()