【问题标题】:How to convert TimeStamp to string to save figures?如何将时间戳转换为字符串以保存数字?
【发布时间】:2020-02-25 20:56:34
【问题描述】:
df.index 

DatetimeIndex(['2019-01-25 17:00:00', '2019-01-25 17:01:00',,
               '2019-01-25 17:08:00', '2019-01-25 17:09:00',
               ...
               '2019-02-15 07:44:00', '2019-02-15 07:45:00',
               '2019-02-15 07:52:00', '2019-02-15 07:53:00'],

我想使用 plt.savefig 将数字保存在循环中,并且我试图将该数字命名为该图所在小时的索引。 我每小时都在循环

for hour, i in df.groupby('index_hour'):

plt.savefig(hour+'.png',dpi=300,bbox_inches='tight')

TypeError:+ 的不支持的操作数类型:'Timestamp' 和 'str'

hour

Timestamp('2019-01-25 17:00:00')

Hour 是我要获取的 .png 文件的最终名称。谢谢。

【问题讨论】:

    标签: python-3.x pandas matplotlib timestamp save


    【解决方案1】:

    使用日期时间对象的strftime 方法:

    timestamps = df.index.strftime("%Y-%m-%d %H:%M:%S")
    

    如果您只想要小时,那么您可以通过日期时间索引的属性简单地获取它(作为 int):

    hours = df.index.hour
    

    有关如何使用日期时间字符串格式的信息,请参阅this

    【讨论】:

    • 谢谢。但是,TypeError: 只能执行带有标量值的操作。这与 savefig 函数中的 dtype 有关吗? j=i.index.hour plt.savefig(j+'.png')
    • @MohammadZeeshan 你在哪里得到这个错误?要在此处使用“+”运算符,两个变量都必须是字符串,因为您需要一个文件名。如果您使用的是我帖子中的第二种方法,请确保将其转换为带有 str(x) 之类的函数的字符串。
    • ValueError: fname 必须是 PathLike 或文件句柄。 timestamp = i.index.strftime("%b-%d %H") plt.savefig(timestamp+'.png')
    • 如果我正确阅读了您的帖子,那么i 是一个数据框,这意味着i.index.strftime() 返回一个索引对象(包含字符串),这意味着您需要获取一个字符串在savefig 调用中实际使用。
    • 是的,你是对的timestamp Index(['Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', 'Jan-25 17', ……. 'Jan-25 17'], dtype='object')
    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 2019-07-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多