当使用pandas询问多个变量时,如何在Python中对数据帧进行排序

2024-10-03 15:33:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个数据框(.csv)文件,试图找到IA每个县销售的火球肉桂威士忌的平均加仑数,该文件已经使用Python与Pandas和Numpy一起组织。我对Python相当陌生,并且还在学习

我试过这个

IALiquor.groupby(["Item Description"])["Volume Sold (Gallons)"].mean()["Fireball Cinnamon Whisky"]

但这只给出了销售的“火球肉桂威士忌”的平均值,而不是按输出单个数字的县进行排序

我也试过这个

IALiquor.groupby(["County"])["Volume Sold (Gallons)"].agg({"mean"})

它输出了平均“销售量(加仑)”而非“火球肉桂威士忌”平均值的县列表

我可以分别完成这两个功能,但我不知道如何将两者结合起来,而且在线文档也没有多大帮助。我也尝试过合并sort_values函数,但似乎也无法实现(可能实现不正确)

谢谢你的帮助

Here is what the data looks like


Tags: 文件csv数据numpypandasmean平均值groupby
1条回答
网友
1楼 · 发布于 2024-10-03 15:33:54

试试这个:

IALiquor.groupby(["county","Item Description"])\
.agg(avg_volume_sold = ("Volume Sold (Gallons)", 'mean')).reset_index()\
.query("`Item Description` == 'Fireball Cinnamon Whisky'")\
.sort_values(by=['county','Item Description'])

添加了sort_values,因此您知道如何实现它

正如@jlesueur所提到的,您还可以在分组和平均之前选择与Fireball Cinnamon Whisky对应的记录,如下所示:

IALiquor.query("`Item Description` == 'Fireball Cinnamon Whisky'")\
.groupby(["county","Item Description"])\
.agg(avg_volume_sold = ("Volume Sold (Gallons)", 'mean')).reset_index()

您还可以使用以下方法选择与肉桂威士忌对应的记录:

IALiquor[IALiquor["Item Description"] == 'Fireball Cinnamon Whisky']

或者使用.loc

IALiquor.loc[IALiquor["Item Description"] == 'Fireball Cinnamon Whisky', :]

相关问题 更多 >