Python 从pandas数据框绘制按时间顺序排序的数据
我很难理解如何按时间顺序绘制一些值的正确顺序 我有我的数据集Python 从pandas数据框绘制按时间顺序排序的数据,python,pandas,matplotlib,Python,Pandas,Matplotlib,我很难理解如何按时间顺序绘制一些值的正确顺序 我有我的数据集 Date User Bool_Value 2020/02/12 3168 True 2020/02/12 3121 False 2020/02/14 421 False 2020/02/18 512 True 2020/02/18 524
Date User Bool_Value
2020/02/12 3168 True
2020/02/12 3121 False
2020/02/14 421 False
2020/02/18 512 True
2020/02/18 5241 True
2020/02/18 314 False
等等
我只想绘制按日期排序的布尔值=True
的用户。
我做的第一件事是按Bool_值
进行过滤,然后按Date
对这些值进行分组:
df_1=df[df['Bool_Value']==True].groupby('Date')
现在我应该使用matplotlib来绘制这些值,显示用户和日期,因为我已经用布尔值过滤了用户。
你能告诉我怎么做吗?试试这个:
import numpy as np
import matplotlib.pyplot as plt
df = []
df.append(['2020/02/12',3168,True])
df.append(['2020/02/12',3121,False])
df.append(['2020/02/14',421,False])
df.append(['2020/02/18',512,True])
df.append(['2020/02/18',5241,True])
df.append(['2020/02/18',314,False])
for entry in df:
date = entry[0]
value = entry[1]
bool = entry[2]
if(bool):
plt.scatter(date, value, color='k', s=100)
plt.show()
输出:
试试这个:
import numpy as np
import matplotlib.pyplot as plt
df = []
df.append(['2020/02/12',3168,True])
df.append(['2020/02/12',3121,False])
df.append(['2020/02/14',421,False])
df.append(['2020/02/18',512,True])
df.append(['2020/02/18',5241,True])
df.append(['2020/02/18',314,False])
for entry in df:
date = entry[0]
value = entry[1]
bool = entry[2]
if(bool):
plt.scatter(date, value, color='k', s=100)
plt.show()
输出:
从您的数据表中不清楚
Date
列的实际数据类型,因此可能需要转换。然后,熊猫数据帧就有了简单的绘图方法
# convert date column to proper datetime
df['Date'] = pd.to_datetime(df['Date'])
# get only entries with Bool_Value (== True is not necessary, see Boolean indexing)
sub = df[df['Bool_Value']]
# pandas data frames have a plotting method
sub.plot('Date', 'User', marker='o', ls='')
从您的数据表中不清楚
Date
列的实际数据类型,因此可能需要转换。然后,熊猫数据帧就有了简单的绘图方法
# convert date column to proper datetime
df['Date'] = pd.to_datetime(df['Date'])
# get only entries with Bool_Value (== True is not necessary, see Boolean indexing)
sub = df[df['Bool_Value']]
# pandas data frames have a plotting method
sub.plot('Date', 'User', marker='o', ls='')
是否希望每个日期只打印一个值?或者不止一个就可以了?(就像18/02)@DavideBrex,我想绘制所有的值你想每个日期只绘制一个值吗?或者不止一个就可以了?(就像18/02)@DavideBrex,我想画出所有的值