给定每年特定邮政编码的值列表 (SCORE) 的均值、中值和众数
Mean, Median, and mode of a list of values (SCORE) given a certain zip code for every year
我想在给定特定邮政编码的情况下找到每年的平均值、中位数和模式值我该如何实现,我已经从 CSV 文件中读取数据并将其转换为 json 文件并定义它作为 DataFrame 我的数据样本不限于以下 table 它更大
您可以使用 groupby 按日期和邮政编码对数据进行分组,然后使用 .agg 函数对其应用均值、中位数和众数。代码如下所示
groupedData = df.groupby(["DATE","Zip codes"]).agg({"Score" : ["mean","median","mode"]
使用SciPy.mstats
:
In [2295]: df.DATE = pd.to_datetime(df.DATE).dt.year
In [2291]: import scipy.stats.mstats as mstats
In [2313]: def mode(x):
...: return mstats.mode(x, axis=None)[0]
...:
In [2314]: df.groupby(['DATE', 'ZipCodes']).agg(["mean","median", mode])
Out[2314]:
SCORE
mean median mode
DATE ZipCodes
2017 44 88.0 88.0 88
55 90.0 90.0 90
66 92.5 92.5 90
77 96.0 96.0 96
2018 33 90.0 90.0 90
55 92.0 92.0 92
66 97.0 97.0 97
2019 55 96.0 96.0 96
77 90.0 90.0 90
我想在给定特定邮政编码的情况下找到每年的平均值、中位数和模式值我该如何实现,我已经从 CSV 文件中读取数据并将其转换为 json 文件并定义它作为 DataFrame 我的数据样本不限于以下 table 它更大
您可以使用 groupby 按日期和邮政编码对数据进行分组,然后使用 .agg 函数对其应用均值、中位数和众数。代码如下所示
groupedData = df.groupby(["DATE","Zip codes"]).agg({"Score" : ["mean","median","mode"]
使用SciPy.mstats
:
In [2295]: df.DATE = pd.to_datetime(df.DATE).dt.year
In [2291]: import scipy.stats.mstats as mstats
In [2313]: def mode(x):
...: return mstats.mode(x, axis=None)[0]
...:
In [2314]: df.groupby(['DATE', 'ZipCodes']).agg(["mean","median", mode])
Out[2314]:
SCORE
mean median mode
DATE ZipCodes
2017 44 88.0 88.0 88
55 90.0 90.0 90
66 92.5 92.5 90
77 96.0 96.0 96
2018 33 90.0 90.0 90
55 92.0 92.0 92
66 97.0 97.0 97
2019 55 96.0 96.0 96
77 90.0 90.0 90