2017-02-28 13 views
3

最初の行にコメントが付いたファイルがあります。その後、2行にヘッダが滑っていて、3行目にインデックスの名前。ファイルには、次のようになります。複数の行をcsvから1つのデータフレーム行に読み込む方法

# 3 5 <-- this is a comment indicating how many rows and column are matrix data 
head1 head2 head3 
head4 head5 
idx1 idx2 idx3 

1.1 1.2 1.3 
1.4 1.5 
2.1 2.2 2.3 
2.4 2.5 
3.1 3.2 3.3 
3.4 3.5 

は、どのように私はこのようになりますデータフレームを持つためにパンダを使用してファイルを読み込むことができますか?

 head1 head2 head3 head4 head5 
idx1 1.1 1.2 1.3 1.4 1.5 
idx2 2.1 2.2 2.3 2.4 2.5 
idx3 3.1 3.2 3.3 3.4 3.5 
+0

これは非常にカスタム要件です。私はPythonでcsvを読むことをお勧めします。必要に応じて解析します。読み取った値からデータフレームを作成します。 –

+0

返信いただきありがとうございます。テキストファイル構造を取り除くと、2行をpandasの1行に読み込むオプションはありますか?私はそれを完全に解析し、後でDataFrameを作成します。 –

答えて

4

あなたは(2値のものをスキップすることによって)すべての3つの値の行を含む1つのデータフレームを作成するためにread_csvskiprowsキーワードを指定してすべての2-を含む別のデータフレームを作成することができ値の行。ヘッダー行はheaderキーワードで指定できます。

したがって、後でconcatenateできる2つの異なるデータフレームにCSVファイルを解析することができます。例として

(3値の線を想定偶数行番号と2値化ラインは奇数ライン番号されている):

df3 = pd.read_csv(..., skiprows=filter(lambda x: x%2 == 1, range(N))) 
df2 = pd.read_csv(..., skiprows=filter(lambda x: x%2 == 0, range(N))) 

それからに2つのデータフレームを連結するためにconcatを使用することができ単一のもの:

df = pd.concat((df3, df2)) 
+0

お返事ありがとうございます。アイデアは素晴らしいです!最後の行を 'concat'で' df = pd.concat([df2、df3]、axis = 1) 'に変更しました。 –

関連する問題