2018年11月16日金曜日

Pandasのitertuplesを使ってデータフレームから行の値を取り出す

dataframeの行の中身をイテレートして取り出すときにitertuplesが使えます。
import pandas as pd
df = pd.DataFrame({'col1':[1, 2], 'col2':[0.1, 0.2]}, index=['a', 'b'])
col1 col2
a 1 0.1
b 2 0.2
for row in df:
    print(row)
col1
col2
for row in df.itertuples():
    print(row)
Pandas(Index='a', col1=1, col2=0.10000000000000001)
Pandas(Index='b', col1=2, col2=0.20000000000000001)

これで行が別々にデータフレームとして出力されています。次にnameパラメータを入れてみます。

for row in df.itertuples(name=None):
    print(row)

('a', 1, 0.10000000000000001, nan)
('b', 2, 0.20000000000000001, nan)

name Noneにすることで、indexと値のタプルになっています。更にindexパラメータを入れます。

for row in df.itertuples(index=False, name=None):
    print(row)

(1, 0.10000000000000001)
(2, 0.20000000000000001)

index=Falseとすることで、値だけのタプルが出てきました。

0 件のコメント:

コメントを投稿