python数据间隔_如何用python绘制时间间隔数据?

这是一个有点不同的方法。对于标签使用ax.注释. 我把标签上的日期,不知道你是要这些标签或发动机号。我肯定你从这里得到了:import pandas as pd

df = pd.DataFrame({‘Eng’:[‘eng1′,’eng1′,’eng1′,’eng2′,’eng3′,’eng4′,’eng4′,’eng4′,’eng5′,’eng5’],

‘Install date’:[‘3/6/2010′,’10/25/2010′,’1/1/2014′,’1/1/2011′,’1/1/2014′,’1/1/2015′,’1/5/2016′,’5/8/2017′,’2/3/2010′,’1/1/2011’],

‘Car’:[‘car1′,’car1′,’car2′,’car3′,’car1′,’car1′,’car3′,’car2′,’car1′,’car4’]})

df

Out[47]:

Eng Install date Car

0 eng1 3/6/2010 car1

1 eng1 10/25/2010 car1

2 eng1 1/1/2014 car2

3 eng2 1/1/2011 car3

4 eng3 1/1/2014 car1

5 eng4 1/1/2015 car1

6 eng4 1/5/2016 car3

7 eng4 5/8/2017 car2

8 eng5 2/3/2010 car1

9 eng5 1/1/2011 car4

df[‘Install date’] = pd.to_datetime(df[‘Install date’])

for car in df.Car.unique():

most_recent_eng = df.loc[df.Car == car].groupby(‘Install date’).max().tail(1).Eng.iloc[0]

new_df = df.loc[df.Car == car].append(pd.DataFrame({‘Car’:[car],’Eng’:[most_recent_eng],’Install date’:[pd.to_datetime(‘now’)]}), sort=False)

piv = new_df.pivot_table(values=’Car’,columns=’Eng’,index=’Install date’, aggfunc=’count’)

piv = piv.reindex(columns=piv.ffill().sum().sort_values(ascending=False).index).ffill()

ax = piv.plot(marker=’o’, linestyle=’-‘,linewidth=2, title=car, ms=4)

j = 0.005

i = 1

for date, eng in zip(new_df[:-1][‘Install date’].tolist(),new_df[:-1][‘Eng’].tolist()):

ax.annotate(date.strftime(“%Y-%m-%d”), (date, 1.00), xycoords=’data’,xytext=(date, 1.00+i*j), textcoords=’data’,

arrowprops=dict(arrowstyle=”->”),

)

j+=0.005

i = -1*i

品牌:

python数据间隔_如何用python绘制时间间隔数据?

Original: https://blog.csdn.net/weixin_42184237/article/details/113983099
Author: 无不散席
Title: python数据间隔_如何用python绘制时间间隔数据?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/679389/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球