gpt4 book ai didi

python - Pandas :在数据框的所有列中找到最大范围

转载 作者:太空狗 更新时间:2023-10-30 02:20:11 33 4
gpt4 key购买 nike

我是编程的新手,所以希望我能清楚地提出我的问题,也许你能指导我找到答案。

我有一个数据框“x”,其中索引代表一年中的第几周,每一列代表一个城市的数值。我试图找到具有最大范围的列(即:最大值 - 最小值)。我可以想象这将需要一个循环来找到每列的最大值和最小值,将其存储为一个对象(或者作为底部的新行?),然后在该对象(或行)中找到最大值。

数据框看起来像这样:

        City1 City2 ... CityN 
week
1
2
3
4
...
53

我们也欢迎您提供有关礼仪或措辞的反馈。

最佳答案

(df.max() - df.min()).idxmax() 这样的东西应该给你一个最大的列:

>>> df = pd.DataFrame(np.random.random((5,4)), index=pd.Series(range(1,6), name="week"), columns=["City{}".format(i) for i in range(1,5)])
>>> df
City1 City2 City3 City4
week
1 0.908549 0.496167 0.220340 0.464060
2 0.429330 0.770133 0.824774 0.155694
3 0.893270 0.980108 0.574897 0.378443
4 0.982410 0.796103 0.080877 0.416432
5 0.444416 0.667695 0.459362 0.898792
>>> df.max() - df.min()
City1 0.553080
City2 0.483941
City3 0.743898
City4 0.743098
dtype: float64
>>> (df.max() - df.min()).idxmax()
'City3'
>>> df[(df.max() - df.min()).idxmax()]
week
1 0.220340
2 0.824774
3 0.574897
4 0.080877
5 0.459362
Name: City3, dtype: float64

如果在最大范围内可能有不止一列,您可能需要这样的东西

>>> col_ranges = df.max() - df.min()
>>> df.loc[:,col_ranges == col_ranges.max()]
City3
week
1 0.220340
2 0.824774
3 0.574897
4 0.080877
5 0.459362

相反。

关于python - Pandas :在数据框的所有列中找到最大范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24748848/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com