PythonのDataFrameで列を抽出して新しいDataFrameを作成する
列を抽出して新しいDataFrameを作成
4列のDataFrameから、2列を抽出して新しいDataFrameを作成する方法を具体例で
見ていきたいと思います。
import pandas as pd
Pandasライブラリをインポートしています。
df = pd.DataFrame({'date': ['2020-01-01', '2020-01-02', '2020-01-03'], 'row1': [1, 2, 3], 'row2': [4, 5, 6], 'row3': [7, 8, 9]})
新しいDataFrameを作成しています。DataFrameは表形式のデータ構造であり、列ごとに異なるデータを格納できます。
new_df = df[['date', 'row3']]
'new_df'という名前の新しいDataFrameを作成しています。
元のDataFrame 'df' から、'date'列と'row3'列を抽出しています。
抽出したDataFrameから新しいDataFrameを作成しています。
ここで、日付をindex登録して、row3列の合計値を求めてみます。
new_df.set_index('date', inplace=True)
'new_df'のインデックスを'date'列に設定しています。これにより、日付が行のラベルとなります。
'inplace=True'は、変更を元のDataFrameに直接適用することを意味します。
print("sum =", new_df.row3.sum())
'new_df'の'row3'列の合計値を計算して表示しています。
'row3'列は新しいDataFrameの列であり、'sum()'メソッドを使用して合計を求めます。
サンプルコード
下記がサンプルコードになります。
#!/usr/bin/env python3 # coding: UTF-8 import pandas as pd # 日付のDataFrameを作成します df = pd.DataFrame({'date': ['2020-01-01', '2020-01-02', '2020-01-03'], 'row1': [1, 2, 3], 'row2': [4, 5, 6], 'row3': [7, 8, 9]}) # date列とrow3列を抽出して新しいDataFrameを作成します new_df = df[['date', 'row3']] # 日付列をインデックスとして設定します new_df.set_index('date', inplace=True) # 新しいDataFrameを表示します print(new_df) print("sum =", new_df.row3.sum())
下記が実行結果になります。
$ ./sample.py row3 date 2020-01-01 7 2020-01-02 8 2020-01-03 9 sum = 24