python-3.x - 日期频率的箱须图
问题描述
大家早上好!我有一个 Pandas df,我试图创建一个包含 30 年数据的每月盒子和胡须。 数据框
datetime year month day hour lon lat
0 3/18/1986 10:17 1986 3 18 10 -124.835 46.540
1 6/7/1986 13:38 1986 6 7 13 -121.669 46.376
2 7/17/1986 20:56 1986 7 17 20 -122.436 48.044
3 7/26/1986 2:46 1986 7 26 2 -123.071 48.731
4 8/2/1986 19:54 1986 8 2 19 -123.654 48.480
试图查看 X 个月的平均出现次数、中位数和最大/最小出现次数(以及最大和最小日期)..
我一直在玩 pandas.DataFrame.groupby() 但并不完全理解它。
我按月份和日期对日期进行了分组。我喜欢这种格式:代码:
df = pd.read_csv(masterCSVPath)
months = df['month']
test = df.groupby(['month','day'])['day'].count()
output: ---->
month day
1 1 50
2 103
3 97
4 29
5 60
...
12 27 24
28 7
29 17
30 18
31 9
那么我怎样才能把上面的df变成一个盒子/晶须图呢?我想要的 x 轴是几个月.. y 轴 == 出现次数
解决方案
试试这个(不做 groupby):
import matplotlib.pyplot as plt
import seaborn as sns
sns.boxplot(x = 'month', y = 'day', data = df)
如果您希望月份为一月、二月格式,请尝试以下操作:
import matplotlib.pyplot as plt
import seaborn as sns
import datetime as dt
df['month_new'] = df['datetime'].dt.strftime('%b')
sns.boxplot(x = 'month_new', y = 'day', data = df)