3
は、以下の点を考慮しdf
数値および非数値データ型の両方でGROUPBYオーバー以内に合計する方法
df = pd.DataFrame([
['X', 'a', 0, 1],
['X', 'b', 2, 3],
['X', 'c', 4, 5],
['Y', 'a', 6, 7],
['Y', 'b', 8, 9],
['Y', 'c', 10, 11],
], columns=['One', 'Two', 'Three', 'Four'])
df
df.dtypes
One object
Two object
Three int64
Four int64
dtype: object
私は私がsum
がそれぞれの上にどうなるのかを取得df.sum()
とき列の
df.sum()
One XXXYYY
Two abcabc
Three 30
Four 36
dtype: object
ただし、これはgroupby
で実行したいと思います。私は、これは
df.groupby('One').sum()
を動作することを期待したい。しかし、それは、数値カラム上で合計のみに表示されます。 df.sum()
と同じ集計を実行する便利な方法は何ですか?
私はそれはlambda
でagg
を使用して、所望の結果を達成することが可能です
pd.concat([df.set_index('One').loc[i].sum() for i in ['X', 'Y']],
axis=1, keys=['X', 'Y']).T.rename_axis('One')
[OK]を、私はそれをupvote。 ';) – jezrael
と質問;) – jezrael