2016-05-31 5 views
-3

、別のCSVファイルからVLOOKUPを列を挿入、行を削除、ループは、それぞれが異なる機関の公表データが含まれていると私はそれらのすべてに同じ操作を実行したいと思います::私は100個のcsvファイルを持っている

1.セルB1から施設名を取得します。これは常に「at」または「at」の後にあります。例えば、「東北大学の出版物」 2.「コード」と呼ばれる別のcsvファイルから一致するInstitutionCodeを調べます。 たとえば '1286'です。 (東北大学)。 3.行1〜14を削除します(セルB1の人員名を含む) 4. 2つの余分な列(列AとB)を「Institution」と「InstitutionCode」というヘッダーの後にファイルに挿入し、データがあるすべての行に関する関連情報 (上記の東北大学、1286)。

私はPythonには新しく、私が見つけたリソースからこのスクリプトをまとめるのが難しいと思っています。 誰も助けてくれますか?以下は

データの画像は、以下

Data in original format

元の形式である、結果の画像は、私は、代わりに私があなたのコードを与えるが、可能性が

Result required

+3

まずは、PandasというPythonデータ解析ライブラリを使用してください。 [こちらはチュートリアルへのリンクです](http://pandas.pydata.org/pandas-docs/version/0.15.2/tutorials.html) – Altronicx

答えて

4

を必要としますあなた自身で書く方法を説明します。

  1. コードファイルを読み、機関とコードを辞書に格納します。 csvファイルの詳細については、https://pymotw.com/2/csv/またはhttps://pymotw.com/3/csv/をご覧ください。 各行は文字列のリストとして表されるため、セル要素にインデックスでアクセスできます。機関名にキーとコードの値を付けさせる。

  2. forループでcsvファイルを1つずつ読み込みます。これらを入力ファイルと呼ぶことにします。読み込んだ各入力ファイルのために、新しいファイルを書き込み用に開きます。これらを出力ファイルと呼ぶことにします。

  3. csvファイルの行をループします。列挙型を使用して行番号を追跡することができます。例えば、http://book.pythontips.com/en/latest/enumerate.htmlのような情報がここにあります。

  4. 正規表現を使って、機関名を検索した行から0

  5. を要素1を取ることによって、セルB1の内容を取得します。例えば詳細:最初の要素は「タイトル」を等しくなるまでhttp://dev.tutorialspoint.com/python/python_reg_expressions.htm し、手順1.

  6. で行われた辞書から機関コードを取得するには、行をループしてください。この行にはヘッダーが含まれます。出力ファイルに "Institution"と "InstitutionCode"と書いた後に、あなたが見つけたヘッダを書いてください。これを行うには、行(文字列のリスト)をタプル(http://www.tutorialspoint.com/python/python_tuples.htm)に変換し、csvライターオブジェクトのwriterowメソッドの引数として渡します(手順1のリンクを参照)。

  7. ヘッダー行の後の各行について、Institutionの名前とコードのタプルと、読み込んだ入力ファイルの行の情報を続けて、writerowメソッドの引数として渡します。 csvライターオブジェクト

  8. 出力ファイルを閉じます。

出力ファイルのセル内容を引用符で囲むかどうかを考えることが1つあります。手順1のリンクでこれについて読むことができます。フィールド区切り文字についても同様です。何も指定しなければ、カンマであるとみなされますが、これは変更できます。

こちらがお役に立てば幸いです。

関連する問題