rb612:
現在、私はいくつかの洞察を行うためにCOVIDデータセットで働いています。
データセットは、この形式は次のとおりです。
Country Province Lat Lon Date Cases Status
0 Thailand 15.0000 101.0000 2020-01-22 00:00:00+00:00 2 confirmed
1 Thailand 15.0000 101.0000 2020-01-23 00:00:00+00:00 3 confirmed
2 Thailand 15.0000 101.0000 2020-01-24 00:00:00+00:00 5 confirmed
3 Thailand 15.0000 101.0000 2020-01-25 00:00:00+00:00 7 confirmed
4 Thailand 15.0000 101.0000 2020-01-26 00:00:00+00:00 8 confirmed
私は(私たちは、この場合の合計欄を呼ぶことにします)、「ケース」欄の上に合計する、国によってグループ化するが、私は緯度と経度で問題に遭遇:私は長い例最大の/緯度を取りたいですカラム。換言すれば、Iは、症例の数が最も多い列から緯度と経度を希望します。明確にするために、ユースケースは、フランスのような国は、(例えばフランス領ポリネシアのような)複数の緯度と経度を持つ行を持っているということですが、私はほとんどの場合があります領域からグループに緯度/長い時間がかかるしたいと思います。
次のように私は、現在の集約を実行しています:
nonzero_cases[(nonzero_cases['Date'] == "03/13/2020")].groupby("Country").agg({"Lat":"first","Lon":"first","Cases":"sum"})
この利回り:
Country Lat Lon Cases
Afghanistan 33.0000 65.0000 7
Albania 41.1533 20.1683 33
Algeria 28.0339 1.6596 26
Andorra 42.5063 1.5218 1
...
しかし、これは、それはケース番号を考慮していないので、私が欲しい、とだけ最初の緯度/経度が選ぶどのような非常にではありません。
エズレル:
追加DataFrame.sort_values
の列によってCases
今最初の値が最大である行、Cases
グループごと:
print (df)
Country Lat Lon Date Cases Status
0 Thailand 15.0 101.0 2020-01-22 00:00:00+00:00 2 confirmed
1 Thailand 15.0 101.0 2020-01-23 00:00:00+00:00 3 confirmed
2 Thailand 15.0 101.0 2020-01-24 00:00:00+00:00 5 confirmed
3 Thailand 15.0 101.0 2020-01-25 00:00:00+00:00 7 confirmed
4 Thailand 14.0 103.0 2020-01-26 00:00:00+00:00 8 confirmed <- changed data
df1 = (df.sort_values('Cases', ascending=False)
.groupby("Country")
.agg({"Lat":"first","Lon":"first","Cases":"sum"}))
print (df1)
Lat Lon Cases
Country
Thailand 14.0 103.0 25