python - 在 python 系列中的哪个月找到 Item wise max sales?

标签 python pandas series

s1=pd.Series([100,200,300,400,500],index=['item1','item2','item3','item4','item5'])
s2=pd.Series([102,205,333,433,502],index=['item1','item2','item3','item4','item5'])
s3=pd.Series([101,2200,300,400,500],index=['item1','item2','item3','item4','item5'])
s4=pd.Series([102,2200,300,400,500],index=['item1','item2','item3','item4','item5'])
s5=pd.Series([104,2300,300,400,500],index=['item1','item2','item3','item4','item5'])
s6=pd.Series([105,2700,300,400,500],index=['item1','item2','item3','item4','item5'])
s7=pd.Series([105,2800,300,400,500],index=['item1','item2','item3','item4','item5'])
s8=pd.Series([306,2900,3900,400,500],index=['item1','item2','item3','item4','item5'])
s9=pd.Series([400,2090,300,400,500],index=['item1','item2','item3','item4','item5'])
s10=pd.Series([500,2900,3090,400,500],index=['item1','item2','item3','item4','item5'])
s11=pd.Series([600,2090,3090,400,500],index=['item1','item2','item3','item4','item5'])
s12=pd.Series([1000,200,300,400,500],index=['item1','item2','item3','item4','item5'])

这些是每个月的 item1、item2、item3、item4 和 item5 的销售数据,s1 数据是第 1 个月的数据,s2 数据是第 2 个月的数据,依此类推。我需要通过 python 编程找出 item1 在哪个月卖出了最大值,然后是 item2、item3、item4、item5。

我是这样尝试的,只是检查我是否得到了值

def fn():
    for i in range(12):
        print(i)
print("Maximum Sales for Individual Items")
for i in s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12:
    for j in range(5):
        x=i[j]
        fn(x)

最佳答案

将其组织到一个 DataFrame 中,其中行索引是项目,列索引表示月份。然后您可以使用 .idxmax(axis=1) 获取每件商品最大销售额的月份。

df = pd.concat([s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12], keys=range(1,13), axis=1)
df.idxmax(1)

#item1    12
#item2     8
#item3     8
#item4     2
#item5     2
#dtype: int64

如果你想知道所有月份的关系,找到每个项目的 max 并使用 where + stack 只保留等于最大值的值。如果这很重要,这也会保留最大值。

df.where(df.eq(df.max(axis=1), axis=0)).stack()

#item1  12    1000.0
#item2  8     2900.0
#       10    2900.0
#item3  8     3900.0
#item4  2      433.0
#item5  2      502.0
#dtype: float64

关于python - 在 python 系列中的哪个月找到 Item wise max sales?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62717546/

相关文章:

javascript - 从 javascript 在 Flask 服务器上调用 web 服务方法

python - 如何使用 Selenium 的 webdriver 和 Python 检查网页内容是否已更改?

python - Pandas DataFrame 填充列中的缺失值

python - 如何防止 pandas 数据框中的索引显示在 Excel 中?

python - 比较 Pandas 系列中的前一个值和下一个值

SAS 9.3 Proc Rank 问题(Rank/Sort Road Block)

python - 使用 python/pandas 将任意多列转换为键值对

Python 3 TCP/IP ascii 命令

python - Pandas:查找特定列不为 NA 但所有其他列为 NA 的行

c++ - 近似 e - 获得尽可能多的精度数字