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,我想画出所有的值