1
複数のgroupby出力を比較する方法は何でしょうか。異なるデータフレームのgroupby出力の比較
>>> tmp1
account place balance type
0 A A1 10 B1
1 A A1 20 B1
2 A A1 30 B1
3 A A1 10 B4
4 A A1 20 B4
5 A A1 10 B5
6 A A1 10 B6
7 B A2 10 B7
8 B A2 20 B1
9 B A2 100 B1
の下に、私は
>>>tmp1.groupby(['account','place','type']['balance'].last().sum(level=0).astype(int)
account
A 70
B 110
Name: balance, dtype: int64
Similarly
>>> tmp2
account place balance type
0 A A1 100 B1
1 A A1 200 B1
2 A A1 100 B1
3 A A1 100 B4
4 A A1 200 B4
5 A A1 100 B5
6 A A1 100 B6
7 B A2 100 B7
8 B A2 200 B1
9 B A2 200 B1
>>>tmp2.groupby(['account','place','type']['balance'].last().sum(level=0).astype(int)
account
A 500
B 300
Name: balance, dtype: int64
#similarly tmp3 grouped..and so on
を行うように私は、異なるデータフレームから複数のGROUPBY出力を持っているが、最大合計バランスのDFを見つける方法はあります。例えば。この場合、tmp2の合計は(70+110 < 500+300)
となります。
私の試み: 私が試した方法の一つは、和をとるなど
mylist=[]
mylist.append(tmp1.groupby(['account','place','type']['balance'].last().sum(.astype(int))
mylist.append(tmp2.groupby(['account','place','type']['balance'].last().sum(.astype(int))
>>> mylist
[180,800]
の下に、リストを維持した今、私は、リストから最大を取ることができますが、私は緩いアカウント情報(800が最大であるが、私は辞書を持っているすべてのDFのために、私はちょうどこのようなリストの最大値を見つける必要があるので、
>>>tmp2.groupby(['account','place','type'])['balance'].last().sum(level=0).to_dict()
{'A': 500, 'B': 300}
を試してみました500、B 300)
を持つアカウントに情報が必要私はあなたが2つの以上のDFSを持っている場合には、私は、正しくあなたを理解していれば(アカウントと一緒に)最大合計
これは私のためにそれを行います!コマンドにメモを付けることができますか – pythonRcpp