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/