Python 在列中搜索特定短语,并计算它们在列中出现的次数,然后绘制为条形图

Python 在列中搜索特定短语,并计算它们在列中出现的次数,然后绘制为条形图,python,pandas,csv,matplotlib,seaborn,Python,Pandas,Csv,Matplotlib,Seaborn,搜索一年中每个月的列。专栏的组织方式如下:“2018年1月1日”。我想知道“2018年1月”在专栏中出现了多少次。基本上是数一数,然后画在条形图上。我想让它显示“2018年1月”、“2018年2月”等的所有数量。在图表上应该是12条。可能使用计数或求和。我使用pandas和python从CSV中提取数据 我试着把它打印到控制台上,取得了一些成功。但我对搜索部分日期的正确方法感到困惑 import pandas as pd import numpy as np import

搜索一年中每个月的列。专栏的组织方式如下:“2018年1月1日”。我想知道“2018年1月”在专栏中出现了多少次。基本上是数一数,然后画在条形图上。我想让它显示“2018年1月”、“2018年2月”等的所有数量。在图表上应该是12条。可能使用计数或求和。我使用pandas和python从CSV中提取数据

我试着把它打印到控制台上,取得了一些成功。但我对搜索部分日期的正确方法感到困惑

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt 
    import csv 
    import seaborn as sns

    data = pd.read_csv(r'C:\Users\rmond\Downloads\PS_csvFile1.csv', error_bad_lines=False, encoding="ISO-8859-1", skiprows=6)
    cols = data.columns 
    cols = cols.map(lambda x: x.replace(' ', '_') if isinstance(x, (str)) else x)
    data.columns = cols
    print(data.groupby('Case_Date').mean().plot(kind='bar'))


我期待着一个条形图,将显示每个月的总数量。所以应该有12个条形图。但我不知道如何搜索该列12次,每次只搜索每个月的数据。不包括日期,只搜索月份和年份。

IIUC,这是您需要的

让我们使用下面的数据帧作为输入数据帧

    date
0   1/31/2018
1   2/28/2018
2   2/28/2018
3   3/31/2018
4   4/30/2018
5   5/31/2018
6   6/30/2018
7   6/30/2018
8   7/31/2018
9   8/31/2018
10  9/30/2018
11  9/30/2018
12  9/30/2018
13  9/30/2018
14  10/31/2018
15  11/30/2018
16  12/31/2018
下面提到的代码行将以条形图的形式获得每个月的计数数。当您有一个列作为datetime对象时,许多函数都非常简单&列的内容更加灵活。这样,您就不需要月份名称的搜索字符串了

df['date'] = pd.to_datetime(df['date'])
df['my']=df.date.dt.strftime('%b-%Y')
ax = df.groupby('my', sort=False)['my'].value_counts().plot(kind='bar')
ax.set_xticklabels(df.my, rotation=90);
输出

print(pd.value\u计数(数据['Case\u Date'].str.contains('2018年3月'))用它代替张贴在那里的内容。我想出了一个月怎么打电话。我现在需要弄清楚如何检查所有12个月的计数