Python-从非数值生成散点图

Python-从非数值生成散点图,python,dataframe,graph,charts,Python,Dataframe,Graph,Charts,我有一个csv文件,其中包含已导入数据框的数据。 “RI_df=pd.read_csv(../Week15/police.csv”)” 使用.head()时,我的数据如下所示: state stop_date stop_time county_name driver_gender driver_race violation_raw violation search_conducted search_type stop_outcome is_arrested s

我有一个csv文件,其中包含已导入数据框的数据。 “RI_df=pd.read_csv(../Week15/police.csv”)”

使用.head()时,我的数据如下所示:

state stop_date stop_time county_name driver_gender driver_race violation_raw violation search_conducted search_type stop_outcome is_arrested stop_duration drugs_related_stop district 0 RI 2005-01-04 12:55 NaN M White Equipment/Inspection Violation Equipment False NaN Citation False 0-15 Min False Zone X4 1 RI 2005-01-23 23:15 NaN M White Speeding Speeding False NaN Citation False 0-15 Min False Zone K3 2 RI 2005-02-17 04:15 NaN M White Speeding Speeding False NaN Citation False 0-15 Min False Zone X4 3 RI 2005-02-20 17:15 NaN M White Call for Service Other False NaN Arrest Driver RI_df[‘与药物有关的停止】。价值计数()

我试图获取“药物相关停药”的真实值计数,并将其放在一个折线图上,以查看“药物相关停药”是否随着时间的推移而增加

ax = RI_df['drugs_related_stop'].value_counts().plot(kind='line',
                                    figsize=(10,8),
                                    title="Drug stops")
ax.set_xlabel("drug stops")
ax.set_ylabel("number of stops")

您应该只使用
groupby().count()

ax=df.groupby('stop_date',as_index=False).count().plot(kind='line',
figsize=(10,8),title=“停药”,x='停药日期',
(地区)

以下是完整的代码,您可以再次检查:

import pandas as pd
import numpy as np

df = pd.DataFrame({'state': {0: 'RI', 1: 'RI', 2: 'RI', 3: 'RI', 4: 'RI'},
 'stop_date': {0: '2005-01-23',
  1: '2005-01-23',
  2: '2005-02-17',
  3: '2005-02-17',
  4: '2005-02-24'},
 'stop_time': {0: '12:55', 1: '23:15', 2: '04:15', 3: '17:15', 4: '01:20'},
 'county_name': {0: np.nan, 1: np.nan, 2: np.nan, 3: np.nan, 4: np.nan},
 'driver_gender': {0: 'M', 1: 'M', 2: 'M', 3: 'M', 4: 'F'},
 'driver_race': {0: 'White', 1: 'White', 2: 'White', 3: 'White', 4: 'White'},
 'violation_raw': {0: 'Equipment/Inspection Violation',
  1: 'Speeding',
  2: 'Speeding',
  3: 'Call for Service',
  4: 'Speeding'},
 'violation': {0: 'Equipment',
  1: 'Speeding',
  2: 'Speeding',
  3: 'Other',
  4: 'Speeding'},
 'search_conducted': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
 'search_type': {0: np.nan, 1: np.nan, 2: np.nan, 3: np.nan, 4: np.nan},
 'stop_outcome': {0: 'Citation',
  1: 'Citation',
  2: 'Citation',
  3: 'Arrest Driver',
  4: 'Citation'},
 'is_arrested': {0: False, 1: False, 2: False, 3: True, 4: False},
 'stop_duration': {0: '0-15 Min',
  1: '0-15 Min',
  2: '0-15 Min',
  3: '16-30 Min',
  4: '0-15 Min'},
 'drugs_related_stop': {0: False, 1: False, 2: False, 3: False, 4: False},
 'district': {0: 'Zone X4',
  1: 'Zone K3',
  2: 'Zone X4',
  3: 'Zone X1',
  4: 'Zone X3'}})

ax = df.groupby('stop_date', as_index=False).count().plot(kind='line',
                 figsize=(10,8), title="Drug stops", x='stop_date',
                 y='district')

这就是我用下面的代码得到的

ax = df.groupby('stop_date', as_index=False).count().plot(kind='line',
                 figsize=(10,8), title="Drug stops", x='stop_date',
                 y='district')

当我尝试上面的代码时,我没有得到这个图。我向您发送了整个代码(请参见编辑)。你得到了什么错误?我把我的“答案”附在我得到的图表下面。我没有收到任何错误,代码运行正常。我只是觉得我的x值太小了。
import pandas as pd
import numpy as np

df = pd.DataFrame({'state': {0: 'RI', 1: 'RI', 2: 'RI', 3: 'RI', 4: 'RI'},
 'stop_date': {0: '2005-01-23',
  1: '2005-01-23',
  2: '2005-02-17',
  3: '2005-02-17',
  4: '2005-02-24'},
 'stop_time': {0: '12:55', 1: '23:15', 2: '04:15', 3: '17:15', 4: '01:20'},
 'county_name': {0: np.nan, 1: np.nan, 2: np.nan, 3: np.nan, 4: np.nan},
 'driver_gender': {0: 'M', 1: 'M', 2: 'M', 3: 'M', 4: 'F'},
 'driver_race': {0: 'White', 1: 'White', 2: 'White', 3: 'White', 4: 'White'},
 'violation_raw': {0: 'Equipment/Inspection Violation',
  1: 'Speeding',
  2: 'Speeding',
  3: 'Call for Service',
  4: 'Speeding'},
 'violation': {0: 'Equipment',
  1: 'Speeding',
  2: 'Speeding',
  3: 'Other',
  4: 'Speeding'},
 'search_conducted': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
 'search_type': {0: np.nan, 1: np.nan, 2: np.nan, 3: np.nan, 4: np.nan},
 'stop_outcome': {0: 'Citation',
  1: 'Citation',
  2: 'Citation',
  3: 'Arrest Driver',
  4: 'Citation'},
 'is_arrested': {0: False, 1: False, 2: False, 3: True, 4: False},
 'stop_duration': {0: '0-15 Min',
  1: '0-15 Min',
  2: '0-15 Min',
  3: '16-30 Min',
  4: '0-15 Min'},
 'drugs_related_stop': {0: False, 1: False, 2: False, 3: False, 4: False},
 'district': {0: 'Zone X4',
  1: 'Zone K3',
  2: 'Zone X4',
  3: 'Zone X1',
  4: 'Zone X3'}})

ax = df.groupby('stop_date', as_index=False).count().plot(kind='line',
                 figsize=(10,8), title="Drug stops", x='stop_date',
                 y='district')
ax = df.groupby('stop_date', as_index=False).count().plot(kind='line',
                 figsize=(10,8), title="Drug stops", x='stop_date',
                 y='district')