2017-12-15 17 views
-2

エクセルファイルからデータをデータベースにインポートする必要があります。 これらのファイルの構造はモデルの構造と一致しないので、私はそれに応じてタプルを整理するために何らかのデータ操作を行う必要があると思います。非構造化エクセルファイルをデータベースにインポート

私はこのような外観をインポートする必要があり、ファイル: excel file

ジャンゴ・モデルは、次の属性があります。国、コモディティ、年、バリュー

だから何が読むための最良の方法だろうデータを正しい構造に配置し、データベースにインポートします(既存のタプルの自動更新が望ましい)。

この要件(PyExcel、Pandas、Django-Excel、Django-Import-Exportなど)のために、既存のPythonライブラリとDjangoライブラリを調べるのに多くの時間を費やしましたが、実際にはインポートする前にデータの並べ替えをサポートしているかどうかを確認します。

私はあなたが私にこのタスクのためのいくつかの提案とソリューションを与えることができます:)

+0

「データベース」とは何ですか?ファイルをデータベースにアップロードするだけですか、何らかの分析を行う必要がありますか?これまでに何を試しましたか? – Evan

+0

@エヴァン私は、ファイルからデータベースにデータを取得したいだけで、分析は必要ありません。しかし、上記のように、データセットは毎年分離されていないため、構造を手動で変更する必要があります。基本的に私はいくつかのライブラリがデータ構造(配列またはdict)にExcelデータを読み込み、次にこの配列を編集/適合させてからdbに入力することをお勧めします。残念ながら、私は上記のライブラリのいずれかからこれに関する情報を見つけられませんでした。 – thimma

+0

あなたが言ったことから、私はpandasライブラリとそのread_excel()関数の使用をお勧めします。データフレームを作成し、操作し、それをCSVやデータベース(SQLなど)に出力できますが、データベースの内容を教えないと助けになることはありません。 – Evan

答えて

0

さて、物事のカップルを願っています。私はそれらの専門家ではないことに注意してください。

まず、データがExcelファイルの場合、そのデータは構造化されています。テーブルの性質は、データを構造化することです。非構造化データは、テキストファイルやテキストファイルのディレクトリのようなものです。

第二に、これを読んで、質問を処方する場合、それに従ってください。https://stackoverflow.com/help/mcve

第三に、SOあなたのためのすべてのコードを書くためにここではありません。あなたの質問によれば、あなたはまだ何かを試していません。あなたの質問が落ちた理由です。

これはあくまでも、Pythonのpandasライブラリを使用してExcelファイルをインポートし、操作し、SQLデータベースにアップロードすることができます。

import pandas as pd 

df = pd.read_excel('tmp.xlsx') 
df2 = pd.melt(df, id_vars = ['Country', 'Commodity'], var_name = 'Year', value_name = 'Value') 
df2 

入力:

Country Commodity 2009 2010 2011 2012 2013 
0 Austria Com. 1  1  1  1  1  1 
1 Austria Com. 2  2  2  2  2  2 
2 Belgium Com. 1  3  3  3  3  3 
3 France Com. 1  4  4  4  4  4 

出力:

Country Commodity Year Value 
0 Austria Com. 1 2009  1 
1 Austria Com. 2 2009  2 
2 Belgium Com. 1 2009  3 
3 France Com. 1 2009  4 
4 Austria Com. 1 2010  1 

あなたは多くのExcelファイルを持っている場合は、あなたを介して反復する/ディレクトリ上globまたはos.walkを使用し、一部またはをインポートすることができますすべてのExcelファイル

パンダDataFrame.to_sqlを使用して、データベース接続(サーバアドレス、ログイン/ pwなど)の定義が必要なSQLデータベースにデータをアップロードできます。

+0

ありがとうございました。残念ながら、私は別の問題に遭遇しました。エクセルファイルには、スキップしたいと思う最後にいくつかの情報があります。これらの行の数は、ファイルごとに異なります。この情報の先頭は、特定のキーワードを持つ行によって識別されます。私はパンダの索引付けや、特定の行をスキップ/削除する方法について多くを研究しましたが、次の情報は見つかりませんでした:特定のものからすべての行をスキップ/削除する方法は? – thimma

+0

これは、特にあなたが既存の質問の中で答えを見つけることができない場合、独自のスレッドのスタックオーバーフローに適した特定の質問の一種です。それは、私が数秒のグーグルで見つけたカップルです: https://chrisalbon.com/python/pandas_selecting_rows_on_conditions.html https://stackoverflow.com/questions/27275236/pandas-best- way-to-select-all-columns-with-x https://www.reddit.com/r/learnpython/comments/5zn29l/pandas_how_to_best_search_for_a_keyword_within/ – Evan

関連する問題