当前位置: 首页 > 知识库问答 >
问题:

如何框式绘制熊猫时间戳系列?(时间戳类型错误)

萧玮
2023-03-14

我正在使用:

熊猫版本0.23。0

Python版本3.6。5.

Seaborn版本0.81。1.

我想要一列时间戳数据的方框图。我的dataframe不是一个时间序列,索引只是一个整数,但我创建了一列时间戳数据,使用:

# create a new column of time stamps corresponding to EVENT_DTM
data['EVENT_DTM_TS'] =pd.to_datetime(data.EVENT_DTM, errors='coerce')

我过滤掉所有由胁迫产生的NaT值。

dt_filtered_time = data[~data.EVENT_DTM_TS.isnull()]

在这一点上,我的数据看起来不错,我可以确认EVENT_DM_TS列的类型是Timestamp,没有无效值。

最后,要生成我调用的单变量方框图:

ax = sns.boxplot(x=dt_filtered_time.EVENT_DTM_TS)

并获取错误:

TypeError:ufunc add无法使用dtype('M8[ns]')和dtype('M8[ns]')类型的操作数

我在谷歌上搜索发现:

https://github.com/pandas-dev/pandas/issues/13844 https://github.com/matplotlib/matplotlib/issues/9610

这似乎表明数据类型表示存在问题。

我还看到了熊猫版本0.21.0的问题。

任何人都有一个简单的修复建议,或者我需要使用不同的数据类型来绘制框图。我想得到时间戳数据分布的单一图像。

共有1个答案

锺星洲
2023-03-14

这是我最后得到的代码:

import time
@plt.FuncFormatter
def convert_to_date_string(x,pos):
    return time.strftime('%Y-%m',time.localtime(x))


plt.figure(figsize=(15,4))
sns.set(style='whitegrid')
temp = dt_filtered_time.EVENT_DTM_TS.astype(np.int64)/1E9
ax = sns.boxplot(x=temp)
ax.xaxis.set_major_formatter(convert_to_date_string)

结果如下:

这要归功于EmortanticeofBeingernest,他的评论让我想到了这个解决方案。

 类似资料:
  • 问题内容: 因此,我的时间戳如下所示: 我将它们放在DataFrame中,并且尝试按升序对其进行排序。我尝试了以下方法。但是,它似乎不起作用 任何帮助表示赞赏。 问题答案: 您只需要确保正确表示格式规范,就可以将其转换为之前的 实际 日期时间。 这比分解组件中的时间戳并按照您的尝试执行多准则排序要直接得多。 演示版

  • 我试着用plotly绘制一个gannt图。重要的是,水平泳道可以有多个横杆在时间上分开。 我发现了一个使用日历日期(YYYY-MM-DD)的例子,并尝试使用时间(HH:MM:SS)进行转换。但是当我使用时间戳时,所有的东西都聚集在一起,没有间隙。

  • 问题内容: 我需要在日期上将2个pandas数据框合并在一起,但是它们当前具有不同的日期类型。1是时间戳(从excel导入),另一个是。 有什么建议吗? 我已经尝试过了,但这仅适用于单个项目(例如),它不能让我应用于整个系列(例如)或数据框。 问题答案: 我从同事那里得到了一些帮助。 这似乎解决了上面发布的问题

  • 问题内容: 考虑到python中的pandas数据帧具有名为integer类型的列,我可以使用以下指令将其转换为格式。 因此,该列现在具有以下条目:。 将字符串恢复为整数时间戳值(代表从过去的秒数)的命令是什么? 我检查了但找不到转换实用程序,因此无法使用它。 此转换有实用程序吗? 问题答案: 您可以使用类型转换为int并将其除以以获取unix纪元开始的秒数。

  • 我知道这是一个非常常见的问题,但我觉得我找到的答案并没有真正解决问题。我将概述我的具体用例,并对来自其他SO答案和网络的信息进行总结。 对于我正在编写的服务,数据库条目被创建并存储在移动设备和我们的网站上,需要以两种方式同步。我们目前的目标是Android和iOS,它们都使用sqlite作为关系数据库。服务器端是使用Django和MySQL在Python中实现的,但将来可能会有其他解决方案取代它。

  • 我有一个Flink程序,它接受两个流,即数据/传感器读数流和警报规则流。我正在广播规则流,并将其连接到数据流以生成动态警报。ProcessingTime的一切都很好,但EventTime却不行。我已经分配了时间戳 > 当两个流(即带有时间戳的流)同时出现时,如何使用“EventTime”生成警报 我是否也必须为我的规则流分配时间戳和水印? 因为我的规则流只有在有任何添加/修改时才会有记录。是否有任