年月数
Number of months by year
我有问题。我想总结一下不同年份的月份。不幸的是,我不知道如何计算每年的月份。 .value_counts()
计算整个月份,是否也可以说只针对不同的年份。我尝试了类似 groupby df.groupby(['year', 'month']).count()
的方法,但它不起作用。
数据框
id date
0 1 2021-02-22
1 2 2021-03-22
2 3 2021-04-22
3 4 2021-02-15
4 5 2021-09-15
5 6 2020-01-12
6 7 2022-02-22
代码
import pandas as pd
import seaborn as sns
d = {'id': [1, 2, 3, 4, 5, 6, 7],
'date': ['2021-02-22', '2021-03-22', '2021-04-22',
'2021-02-15', '2021-09-15', '2020-01-12', '2022-02-22'],
}
df = pd.DataFrame(data=d)
print(df)
df['month'] = pd.to_datetime(df['date'], errors='coerce').dt.month
df['year'] = pd.to_datetime(df['date'], errors='coerce').dt.year
sns.lineplot(data=df, x="month", y="", hue="month")
[OUT]
>>> ValueError: Could not interpret value `` for parameter `y`
我试过的
#df_month = df__orders['orderDate_month'].value_counts().reset_index()
#df_month.columns = ['month', 'count']
#sns.lineplot(data=df_month, x='month', y='count')
#df_new = df.groupby(by=["year, month"]).count()
df.groupby(['year', 'month']).count()
df_new
[OUT]
year
2020 1
2021 5
2022 1
dtype: int64
我想要的
year month count
2020 1 1
2021 2 2
2021 3 1
2021 4 1
2021 9 1
2022 2 2
使用GroupBy.size
:
df_month = df.groupby(['year', 'month']).size().reset_index(name='count')
print (df_month)
year month count
0 2020 1 1
1 2021 2 2
2 2021 3 1
3 2021 4 1
4 2021 9 1
5 2022 2 1
然后添加hue
参数:
sns.lineplot(data=df_month, x='month', y='count', hue='year')
我有问题。我想总结一下不同年份的月份。不幸的是,我不知道如何计算每年的月份。 .value_counts()
计算整个月份,是否也可以说只针对不同的年份。我尝试了类似 groupby df.groupby(['year', 'month']).count()
的方法,但它不起作用。
数据框
id date
0 1 2021-02-22
1 2 2021-03-22
2 3 2021-04-22
3 4 2021-02-15
4 5 2021-09-15
5 6 2020-01-12
6 7 2022-02-22
代码
import pandas as pd
import seaborn as sns
d = {'id': [1, 2, 3, 4, 5, 6, 7],
'date': ['2021-02-22', '2021-03-22', '2021-04-22',
'2021-02-15', '2021-09-15', '2020-01-12', '2022-02-22'],
}
df = pd.DataFrame(data=d)
print(df)
df['month'] = pd.to_datetime(df['date'], errors='coerce').dt.month
df['year'] = pd.to_datetime(df['date'], errors='coerce').dt.year
sns.lineplot(data=df, x="month", y="", hue="month")
[OUT]
>>> ValueError: Could not interpret value `` for parameter `y`
我试过的
#df_month = df__orders['orderDate_month'].value_counts().reset_index()
#df_month.columns = ['month', 'count']
#sns.lineplot(data=df_month, x='month', y='count')
#df_new = df.groupby(by=["year, month"]).count()
df.groupby(['year', 'month']).count()
df_new
[OUT]
year
2020 1
2021 5
2022 1
dtype: int64
我想要的
year month count
2020 1 1
2021 2 2
2021 3 1
2021 4 1
2021 9 1
2022 2 2
使用GroupBy.size
:
df_month = df.groupby(['year', 'month']).size().reset_index(name='count')
print (df_month)
year month count
0 2020 1 1
1 2021 2 2
2 2021 3 1
3 2021 4 1
4 2021 9 1
5 2022 2 1
然后添加hue
参数:
sns.lineplot(data=df_month, x='month', y='count', hue='year')