【问题标题】:Finding the minimum value based on another column in pandas根据熊猫中的另一列查找最小值
【发布时间】:2020-08-09 03:22:48
【问题描述】:
我必须在数据框 df(附加快照)的所有 3 个渠道(酒店、咖啡馆或餐厅)中找到销售额最小值的渠道类型。因此输出将是销售额最低的渠道。
我正在编写的代码如下:
df1=df.groupby(['Channel']).sum()
df1=df1.sum(axis=1)
print(df1[['Channel']].idxmin())
但这似乎是一些“索引错误”。我需要将频道设置为索引并查找吗?还是有其他方法?
【问题讨论】:
标签:
pandas
group-by
minimum
【解决方案1】:
改变你的最后一行
print(df1.idxmin())
【解决方案2】:
假设您想对除 Channel 之外的所有值列求和,那么您的所有代码都会一直运行到最后一行。代码的清理版本:
df = pd.DataFrame({"val": [1, 2, 3, 4], "Val2": [5, 100, 6, 7], "Channel": ["Hotel", "Cafe", "Restaurant", "Hotel"]})
df.groupby('Channel').sum().sum(axis='columns').idxmin()
如果您确实想查找每列的 idxmin,请删除 .sum(axis='columns')