Python

【Python】DataFrameの一列をきれいにリストへ変換する

投稿日:2020年9月11日 更新日:

概要

pythonでデータベースからデータを取得するときに非常に便利なライブラリとしてpandasがあります。read_sqlメソッドを使うとことでselect文を使用してデータベースからDataFrame型でデータを取得できます。

ただ、データベースのテーブルのうちの一列だけリスト型で取得したいときに少し躓いたので、対処方法についてメモします。

データベースから一列取得する例

例えば、データベース側(PostgreSQLとします)に以下のようなテーブルがあったとします。

abc
110100
220200
330300
440400
test_table

この表からa列だけをpandasで取り出してみます。

import pandas as pd
import psycopg2

connection = psycopg2.connect(host='host', dbname='database', user='username', password='password')
df = pd.read_sql("SELECT a FROM test_table", connection)
df.head()

結果

このa列をリストにしたいなぁ、思ったとき、直感的にはイメージするのは[1,2,3,4]みたいなリストだと思います。

では、実際にこれをリスト化してみます。

df.values.tolist()

結果
[[1], [2], [3], [4]]

二重リストで出てきてイメージと違う・・・

当たり前ですが、いくらselect文で一列だけ取り出してもDataFrameはDataFrameなので、values.tolist()でリスト化しても二重になってしまいます。今回はこれを一重リストにします。

一重リストにする

itertoolsを使うことで、以下のコードで実現できます。

import itertools
a = df.values.tolist()
list(itertools.chain.from_iterable(a))

結果
[1, 2, 3, 4]

非常に便利なので、今後も使用する機会が多くなりそうです。

Pythonを一から学ぶのにおすすめの本はコチラ

-Python

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

【Python】活性化関数を描画する

Contents1 概要2 使用するライブラリ3 ステップ関数4 シグモイド関数5 tahn関数6 ReLu関数7 Leaky ReLu関数8 まとめ9 コード全体 概要 Deep Learningの …

【Python】単回帰の計算と表示

Contents1 目的2 回帰の式3 単回帰とは?4 最小二乗法5 pythonによる実装6 注意点 目的 ある得られたデータをもとに、今後発生するデータが何かを予測したいという場合があります。例え …

Anaconda + PyCharmでWindows python開発環境構築~Hello worldまで

今後、初心者でもコーティングしやすく、データ分析ライブラリが豊富なpython中心でいろいろやっていきたいと思います。まずは、機械学習ライブラリなどが最初からそろったAnacondaパッケージとしてp …

【Python】算術平均と幾何平均計算

Contents1 目的2 平均3 算術平均4 幾何平均5 まとめ 目的 統計学を使いこなしたい。でも参考書を読んでいても難しい概念や数式が沢山出てきて、その時は分かったつもりになっても後で実践的に使 …

Python formatの基本的な使い方

Contents1 目的2 文字列整形3 型指定 目的 python3系の文字列操作のメソッドであるformatの基本的な使い方について勉強する。 文字列整形 formatの引数に文字列等(intやf …

言語切り替え

カテゴリー