現在、Postgresにテーブル変換ステートメントをたくさん書いています。これは、Pythonで繰り返しの量を減らすための関数を書いています。コードがあります。私がPandasにロードするテーブルを持っていて、次のようなものがあるとします。データフレームをワイドからロングに変換してマップを適用する(Python 3.5.1 Pandas)
import pandas as pd
df = {'state' : ['NJ', 'NJ', 'NY', 'NY'],
'county' : ['AAA', 'BBB', 'CCC', 'DDD'],
'population' : [100, 200, 300, 400],
'other' : [11, 12, 13, 14],
'row_number': [1, 2, 3, 4]
}
county other population row_number state
0 AAA 11 100 1 NJ
1 BBB 12 200 2 NJ
2 CCC 13 300 3 NY
3 DDD 14 400 4 NY
私は州と郡の列を保持したいと思います。 other
およびフィールドは実際のデータフィールドを表します。最後に、これらの値をExcelスプレッドシートの列と行にマップしたいと考えています。フィールドrow_number
は、州および郡に対応する行番号を表します。
ここで、2つのデータフィールドと列の間に「マッピング」がある辞書があるとします。私が欲しいので、私は可能な限り最も一般的な方法でこれをやろうとしている、二次的な重要性の
county state value row
0 AAA NJ 11 A1
1 AAA NJ 100 B1
2 BBB NJ 12 A2
3 BBB NJ 200 B2
4 CCC NY 13 A3
5 CCC NY 300 B3
6 DDD NY 14 A4
7 DDD NY 400 B4
:私はのように見えるデータフレームを生成したいのは、それが
column_mapping = {'other': 'A',
'population': 'B'
}
のように見えるとしましょう同様の構造を持ついくつかの異なるテーブルをこの関数に渡すことができますが、異なるカラム名(state
、county
、およびrow_number
は常に同じですが、実際のデータフィールドは異なる場合があります)。
ありがとう!これは主に私のために働くが、私は本当に奇妙なエラーが発生している。私は 'pd.read_sql'を使ってクエリを実行し、DataFrameを返します。 'frame = frame.ix [:、id_vars + value_vars]' 'AttributeError: 'タプル'オブジェクトに属性 'ix''がありません。しかし、 'pd.read_sql_table'を直接使うと、私はこのエラーに遭遇しません。何か案は? – Vincent
非常に難しい質問です。 'DataFrames'は' pd.read_sql'と 'pd.read_sql_table'を使って同じですか? 'インデックス 'は同じですか?または、 'Multiindex'と他の' index'を含んでいますか? – jezrael
何時間も後、コードの途中で余分なカンマが掛かっていることがわかりました= [[[[ – Vincent