我有一个关于python groupby的问题。我这里有个数据框:
latlong hour formula_value_x
0 -37.853698 145.0562584 0 978.880733
1 -37.853698 145.0562584 1 535.458975
2 -37.853698 145.0562584 2 370.082577
3 -37.853698 145.0562584 3 348.519570
4 -37.853698 145.0562584 4 524.588282
5 -37.853698 145.0562584 5 1310.520435
6 -37.853698 145.0562584 6 3440.724656
7 -37.853698 145.0562584 7 5839.008447
8 -37.853698 145.0562584 8 6024.170196
9 -37.853698 145.0562584 9 5000.579879
10 -37.853698 145.0562584 10 4697.686943
我需要对前2列(latlong
和hours
)运行groupby
并找到最大值。但我需要在小时括号中运行groupby,比如0-5, 6-10, 11-16,17-20, 20-23
。在
是不带括号的基本方法。我怎么能用这些小时来做呢?在
例如,对于一个特定的latlong
值,groupby
将取其所有公式值[0,1,2,3,4,5]
,然后取其最大值。
在找到这些小时括号的最大值后,我需要创建一个新列,该列将具有最大值(之前已找到),这些列将位于属于同一个括号的小时的旁边。在
所以..我需要这样的结果:
latlong hour formula_value_x max
0 -37.853698 145.0562584 0 978.880733 1310.520435
1 -37.853698 145.0562584 1 535.458975 1310.520435
2 -37.853698 145.0562584 2 370.082577 1310.520435
3 -37.853698 145.0562584 3 348.519570 1310.520435
4 -37.853698 145.0562584 4 524.588282 1310.520435
5 -37.853698 145.0562584 5 1310.520435 1310.520435
6 -37.853698 145.0562584 6 3440.724656 6024.170196
7 -37.853698 145.0562584 7 5839.008447 6024.170196
8 -37.853698 145.0562584 8 6024.170196 6024.170196
9 -37.853698 145.0562584 9 5000.579879 6024.170196
10 -37.853698 145.0562584 10 4697.686943 6024.170196
一个简单的方法是将小时分组到一个新的列“hourgroup”中,然后使用它。在
然后在新的数据帧中收集分组值。我将lat/long分为两个字段,因为您的示例中的空格在导入时将它们分开。在
^{pr2}$为分组的最大值指定一个更好的名称。Max是一个错误的名称,因为函数Max存在。在
将其与原始数据帧合并
相关问题 更多 >
编程相关推荐