首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python在x轴上绘制带有datetime对象的散点图

python在x轴上绘制带有datetime对象的散点图
EN

Stack Overflow用户
提问于 2022-05-03 19:11:04
回答 1查看 551关注 0票数 0

我有一个具有字符串格式日期的数据帧。我使用strptime将它们转换为datetime对象。

Y是一个浮子

然后我使用plt.plot_date试图绘制数据的散点图。

但我一直在找float() argument must be a string or a number, not 'datetime.date'

我的完整代码如下:

代码语言:javascript
复制
from datetime import datetime
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

def plot():
    data = []
    df = pd.read_csv('random_case_number.csv') 
    for index, row in df.iterrows():
        if (row['recipt_number'][: 3] != 'IOE'):
            data.append([int(row['recipt_number'][5:]) - 90000000, datetime.strptime(row['date'], '%Y-%m-%d').date()])
    dates = mdates.date2num(data[1])
    plt.plot_date(dates, data[0])

样本数据:

代码语言:javascript
复制
recipt_number,date
IOE0914808418,1998-01-01
MSC2290138517,2021-11-18
LIN2190425860,2021-07-09
LIN2290143717,2022-02-22
WAC2190082175,2021-05-03
IOE9086351290,2022-01-06
IOE0912562803,2021-07-09
IOE9086351290,2022-01-06
SRC2290076110,2022-01-24
IOE0913043187,1322-07-27

任何帮助都是非常有用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-03 19:18:47

不要在您的DataFrame上迭代。尝试:

代码语言:javascript
复制
df = pd.read_csv('random_case_number.csv')
df["date"] = pd.to_datetime(df["date"])
df["recipt"] = df["recipt_number"].str[5:].astype(int).sub(90000000).where(~df["recipt_number"].str.startswith("IOE"))
ax = df.plot.scatter(x="date",y="recipt",rot=90)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72104355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档