2016-04-22 19 views
0

私の状況は....私は2つのCSVファイル(ファイル1とファイル2)を持っています。 File1には約15の列があり、file2には約10の列があります。私はfile1から15列すべてを取得し、file2から13列だけを抽出し、16列すべてを "final.csv"という新しいcsvファイルにマージする必要があります。ここに私がこれまで持っていたものがあります...CSVの列の抽出とマージ

+0

申し訳ありませんが、私はfile2.csvの8列目を意味していました。 – okcken

+0

おそらく最善の方法ではなく、迅速かつ汚れた方法は、インデックスとして列番号を設定する配列に各行を読み取ることです。インデックスから次に13番目の列を取得し、次に配列を繰り返して、必要に応じて再結合してください。コードについてはまだ分かりませんが、ロジックはコメントに値します:) –

+1

あなたは現在何を問題にしていますか? (くぼみ以外の)あなたは[mcve]を読む時間が必要です。 –

答えて

0

私は、あなたのファイルをテーブルとしてロードすることから始めます。次に、索引付けを使用して必要な列を選択し、ファイルをマージして新しいファイルを作成します。もちろん、10列しかない場合は、file2の13番目の列を選択できません。ここでは、そのファイルに13列あると仮定しています。

import pandas as pd 
file1 = pd.read_table('F:\somedata\somefolder\file1.csv', delimiter=',', header=None) 
file2 = pd.read_table('F:\somedata\somefolder\file2.csv', delimiter=',', header=None) 
file2_short = file2.ix[:,12:13] 
new = pd.concat(file1, file2_short, axis=1) 
new.to_csv('F:\somedata\somefolder\newfile.csv') 

これは、その列があなたの代わりにそれによって選択することができ、ヘッダ(もちろん、あなたが「ヘッダ=なし」の部分を削除します)...

を持っている場合は、ファイル2から列13をしたいことを想定してい
file2_short = file2['col_13'] 

希望します。

+0

ありがとうございます。しかしパンダを使わずにこれを行う方法はありますか?私はPandasのインストールに問題があります。私はPIPをインストールしてPandasをインストールしましたが、インストールされていないVisual C++コンポーネントについて不平を言っています。私はこれを達成するために、外部コンポーネントをインポートせずに、現在Python 3で利用できるものを使用することを試みています。 – okcken

+0

ああ、それはやや難しいかもしれません。個人的には、Pythonパッケージ全体を、Pandasとその他の重要なパッケージがあらかじめインストールされているAnaconda(https://www.continuum.io/downloads)から再インストールします。それ以外の場合、私は多くの助けをすることはできません恐れている。 – EllieFev