我是熊猫的新手,我正在为此苦苦挣扎: 我有一张这样的桌子(时间长得多):
我想获得特定项目在特定时间、特定日期的平均计数(因此按 3 个特定值分组)。 在这个例子中,如果我想要周一售出的 itemname1 的平均数量在 8 到 9 之间,那么输出将为 4。
感谢您的帮助
答案 0 :(得分:0)
在 Item、Day 和 Hour 上使用 groupby 函数:
# setup
import pandas as pd
data = [
["Monday", "8 to 9", "itemname1", "drinks", 3],
["Monday", "8 to 9", "itemname1", "drinks", 5],
["Monday", "12 to 13", "itemname2", "drinks", 1],
["Tuesday", "8 to 9", "itemname3", "drinks", 1],
["Tuesday", "8 to 9", "itemname1", "drinks", 2],
["Tuesday", "9 to 10", "itemname2", "drinks", 3],
["Tuesday", "12 to 13", "itemname1", "drinks", 2]
]
df = pd.DataFrame(data, columns=["Day", "Hour", "Item", "Category", "Count"])
means = df.groupby(["Item", "Day", "Hour"]).agg({"Count": "mean"})
example = means.loc[("itemname1", "Monday", "8 to 9")].values[0]
print(example)
输出
4