

pythonを使いはじめて２週間になります。  
やりたいことは以下です。

①pandasを使って複数のCSVを読みこんで２行目のみをそれぞれから抽出  
②１つ目のCSVから抽出した行は１行目  
２つ目のCSVから抽出した行は２行目・・・  
と、いうふうにしたいのですが、  
→できたことは  
・フォルダにあるCSVを読み込む  
→あいまいorわからない  
・なんとなく２行目もとりだせている気もするんですが。  
・結合のしかたがわかりません。  
・CSVに書き出しできたんですが、１個しか抽出できていなく、行列ひっくりかえっています。なぜですか？

CSVは全部で１２０個  
１０３行×１０３列の数字がはいっています。  
いきなり１２０個でためすのも怖いのでまずは２個からやってみています。

どうしたらよいか教えてください。

[![プログラムです](https://i.stack.imgur.com/OzOT5.png)](https://i.stack.imgur.com/OzOT5.png)


CC BY-SA 4.0
2018-10-11T05:25:07.953
49179
2018-10-11T06:30:29.927
2018-10-11T06:30:29.927
3060
30443
question
python pandas
pandasで複数のCSVから特定行のみを抽出してCSVにしたい


多分こんな感じで動作するかと思います。

[code]

    dfs = []
    for filename in filenames:
        df = pd.read_csv(filename, header=None)
        dfs.append(df.iloc[[1]])
    merged_df = pd.concat(dfs, ignore_index=True)
    merged_df.to_csv('out.csv')
    
[/code]

> なんとなく２行目もとりだせている気もするんですが。

とりあえず２行目データは `df.iloc[1]` にて取り出すことが出来るのですが、 `df.iloc[1]` の場合、戻り値は Series型
(一次元データ)となります。今回は DataFame型のまま行データとして取り出した方が都合がよいので `df.iloc[[1]]`
とするほうが良いかと思います。

> 結合のしかたがわかりません。

結合は質問のコードにコメントアウトで書かれている通り、`pandas.concat()` を使います。この引数としては結合したい DataFrame
を全てリストに入れて呼び出す形をとりますので、ループの中では単にリストへの追加を行い、ループの外で１回呼び出すと良いかとおもいます。


CC BY-SA 4.0
2018-10-11T06:20:52.553
49181
2018-10-11T06:20:52.553
24801
49179
answer