1. ホーム
  2. python

[解決済み] Pandas データフレームの合計行数

2023-01-21 12:29:13

質問

以下のようなデータフレームがあります。

     foo  bar  qux
0    a    1    3.14
1    b    3    2.72
2    c    2    1.62
3    d    9    1.41
4    e    3    0.58

で、データフレームの最後に「合計」の行を追加したいと思います。

     foo  bar  qux
0    a    1    3.14
1    b    3    2.72
2    c    2    1.62
3    d    9    1.41
4    e    3    0.58
5  total  18   9.47

を使ってみましたが sum コマンドを使ってみましたが、結局Seriesになってしまい、Dataframeに戻すことはできますが、データ型が維持されません。

tot_row = pd.DataFrame(df.sum()).T
tot_row['foo'] = 'tot'
tot_row.dtypes:
     foo    object
     bar    object
     qux    object

私は合計行に他の操作を適用する必要があるので、元のデータフレームからのデータ型を維持したいのですが、次のようなものです。

baz = 2*tot_row['qux'] + 3*tot_row['bar']

どのように解決するのですか?

で合計行を追加する。

df.append(df.sum(numeric_only=True), ignore_index=True)

文字列やオブジェクトのカラムがある場合のみ変換が必要です。

これは少し壊れやすい解決策なので、データフレームに対する操作にこだわることをお勧めします。

baz = 2*df['qux'].sum() + 3*df['bar'].sum()