2016-10-09 7 views
0

sqliteのテーブル:Pythonの転置私はテーブルとSQLiteのデータベースは次のように整理している

ITEMDATA

date_time  | item_code | value 

3/13/2015 12:23 | fridge21 | 345.45 
3/13/2015 12:23 | heater12 | 12.34 
3/13/2015 12:23 | fan02  | 63.78 
3/13/2015 12:24 | fridge21 | 345.47 

私はのようになりITEMDATAテーブル内のデータを取得したいと思います:

date_time | fridge21 | heater12 | fan02 

3/13/2015 12:23 | 345.45 | 12.34 | 63.78 
3/13/2015 12:24 | 345.47 | 12.45 | 63.23 

私が試してみました:

conn = sqlite3.connect(DB_NAME) 
sql = "SELECT * FROM {0}".format(table_name) 
df = pd.read_sql_query(sql, conn) 
df1 = pd.DataFrame(df.values.T, columns=df.columns) 

しかし、私はitemdataテーブル(1x10^6行と3列)を正確に転置したくないので、上記の望ましい出力ごとに一意のitem_codes列にします。

これを行う方法に関するヒント?

+0

あなたは条件付き集計クエリ、SQLデータをピボットする古典的な方法を実行することができますように、データベースにどのように多くのユニークなアイテムがありますか? – Parfait

+0

@Parfaitは50個のユニークなアイテムしかないので、正常に動作する可能性がありますが、集計クエリはavg、counts https://www.sqlite.org/lang_aggfunc.htmlなどのように見えますが、この状況でどのように適用しますか? –

答えて

3

sqlliteテーブルをロードし、生のデータフレームに対して使用pivot

df.pivot('date_time', 'item_code', 'value') 
+0

これは正しい軌跡のようです。しかし、私はdf.pivot(...)にindexerrorを取得ValueError:インデックスが重複したエントリを含んでいて、再構成できず、df.pivot_table(...)でタイプエラーが発生するTypeError:pivot_table()引数 'values'に複数の値がある –

+0

ここで試用データをテストhttp://pandas.pydata.org/pandas-docs/stable/reshaping.htmlとあなたのソリューションが正常に動作したので、私のデータに問題がある必要があります –

+1

指定された軸に二等辺三角形がある場合は、その代わりにpivot_tableを使うことを考えてみましょう。その関数は、塊データを集約するaggfuncのような多くのパラメータを与えます。 – Boud

関連する問題