python - 如何将数据帧与数组时间戳合并并根据数组的条件进行绘图?

标签 python pandas matplotlib

我有一个时间序列数据框和一个数组,如下所示

>> DataFrame
            datetime   value
...
0 2019-09-17 23:55:00  210.38
1 2019-09-17 23:56:00  210.50
2 2019-09-17 23:57:00  210.51
3 2019-09-17 23:58:00  210.40
4 2019-09-17 23:59:00  210.41
...
>>timestamp array
[Timestamp('2019-09-17 00:05:00'),
 Timestamp('2019-09-17 00:16:00'),
 Timestamp('2019-09-17 01:21:00'),
 Timestamp('2019-09-17 01:26:00'),
 Timestamp('2019-09-17 01:31:00'),
 Timestamp('2019-09-17 01:56:00'),
 Timestamp('2019-09-17 02:06:00'),
 Timestamp('2019-09-17 02:11:00'),
 Timestamp('2019-09-17 13:36:00'),
 Timestamp('2019-09-17 13:41:00'),
 Timestamp('2019-09-17 13:46:00'),
 Timestamp('2019-09-17 14:00:00'),
 Timestamp('2019-09-17 14:26:00')]

我想合并这两个对象,并且任何行的值都是“datetime”,与数组中的时间戳值相同,新列的值将等于 1,其他列的值等于 0。

然后,我想在图表上绘制垂直虚线,或者只是在数组中的每个时间绘制一个突出显示的值点。

请帮忙!谢谢

最佳答案

我认为你需要:

#if necessary
#df['datetime'] = pd.to_datetime(df['datetime'])

df['new'] = df['datetime'].isin(arr).astype(int)

或者:

df['new'] = np.where(df['datetime'].isin(arr), 1, 0)

关于python - 如何将数据帧与数组时间戳合并并根据数组的条件进行绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59679522/

相关文章:

python - 属性错误 : 'str' object has no attribute 'decode'

pandas - 将 geojson 文件下载到 jupyter 中的 folium 中

python - Pandas 填充日期

python - Pandas 修改数据集,使两个分类具有相同的值

python - 在 matplotlib 中显示 numpy 矩阵

python - 在windows上编译疯狂的python

python - Pandas 的 DataFrame 合并意外值

python - 在同一个图表上绘制不同比例的多条线

python - 使用 matplotlib 在数据帧的其他列的条件下针对相同的 x 轴绘制列值

python - 如何在 pandas 中将一组行洗牌在一起(行具有唯一的 id)