微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

跨行的 Pandas Min 和 Max

如何解决跨行的 Pandas Min 和 Max

我有一个如下所示的数据框。我想获得每个城市的最小值和最大值以及有关该城市最小和最大值订购哪些产品的信息。请帮忙。

数据框

Dataframe

解决方法

db.min(axis=0) - min value for each column
db.min(axis=1) - min value for each row 
,

使用 Dataframe.min 和 Dataframe.max

DataFrame.min(axis=None,skipna=None,level=None,numeric_only=None,**kwargs)
DataFrame.max(axis=None,**kwargs)
matrix = [(22,16,23),(33,50,11),(44,34,(55,35,60),(66,36,13)
          ]
dfObj = pd.DataFrame(matrix,index=list('abcde'),columns=list('xyz'))
    x     y     z
a  22  16.0  23.0
b  33   50  11.0
c  44  34.0  11.0
d  55  35.0   60
e  66  36.0  13.0

获取包含每行最小值的系列

minValuesObj = dfObj.min(axis=1)
print('minimum value in each row : ')
print(minValuesObj)

输出

minimum value in each row : 
a    16.0
b    11.0
c    11.0
d    35.0
e    13.0
dtype: float64
,

MMT Marathi,根据 Danil 和 Sutharp777 提供的答案,您应该能够得到答案。但是,我看到您有问题要问他们。不确定您是否正在寻找要创建的列,该列具有每行的最小值/最大值。

这是解决方案的完整数据框。我只是在整理他们已经给出的答案

import pandas as pd
d = [['20in Monitor',2,1,2],['27in 4k Gaming Monitor',['27in FHD Monitor',['34in Ultrawide Monitor',['AA Batteries (4-pack)',5,6,7,5],['AAA Batteries (4-pack)',8,9,7],['Apple Airpods Headphones',3,['Bose SoundSport Headphones',['Flatscreen TV',2]]
c = ['Product','Atlanta','Austin','Boston','Dallas','Los Angeles','New York City','Portland','San Francisco','Seattle']
df = pd.DataFrame(d,columns=c)
df['min_value'] = df.min(axis=1)
df['max_value'] = df.max(axis=1)
print (df)

输出结果为:

                      Product  Atlanta  Austin  ...  Seattle  min_value  max_value
0                20in Monitor        2       2  ...        2          1          2
1      27in 4k Gaming Monitor        2       1  ...        2          1          2
2            27in FHD Monitor        2       2  ...        2          2          2
3      34in Ultrawide Monitor        2       1  ...        2          1          2
4       AA Batteries (4-pack)        5       5  ...        5          5          7
5      AAA Batteries (4-pack)        7       7  ...        7          7          9
6    Apple Airpods Headphones        2       2  ...        2          2          3
7  Bose SoundSport Headphones        2       2  ...        2          2          3
8               Flatscreen TV        2       1  ...        2          1          2

如果你想要每列的最小值和最大值,那么你可以这样做:

print ('min of each column :',df.min(axis=0).to_list()[1:])
print ('max of each column :',df.max(axis=0).to_list()[1:])

这会给你:

min of each column : [2,2]
max of each column : [7,9]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。