フォルダ内のファイルをpandasへ読み込み

しばらく全く更新していなかったのだけど、それは何もしてなかったわけではなく一気にでかいのドンって更新して驚かせようと思ってからであって、決してサボっていたわけではなく、、、

そして、そんなこと言ってるのにいきなり細々と記事を挙げ始めたのは、決して一気にできそうになかったから、諦めてとかではなく、、、、

やっぱり、細々とメモした方が後から振り返りやすいもんね!!!!!!

やりたいこと

  1. フォルダ内に保存してあるファイルのパスを取得したい

  2. ファイル内のデータをpandasのデータフレームにまとめる

やったこと

フォルダ内に保存してあるファイルのパスを取得したい

コード

import glob
l=glob.glob('data/*.csv')

結果

['data/chnsec_20110101-20200131.csv',
 'data/eurosec_20110101-20200131.csv',
 'data/grobalbond_20110101-20200131.csv',
 'data/grobalreit_20110101-20200131.csv',
 'data/grobalsec_20110101-20200131.csv',

指定したディレクトリ内のファイルのパスを、リスト型の変数に格納してくれる。

*はオールマイティ的な

後、リスト型、みたいな言葉の定義は自分の中で曖昧だったりするから、間違っていたら教えていただきたく

ファイル内のデータをpandasのデータフレームにまとめる

コード

df=pd.DataFrame([])
for idx,filepath in enumerate(l):
    df0=pd.read_csv(filepath)
    df1=df0.rename(columns={'price':idx})
    if idx==0:
        df=df1
    else:
        df=pd.merge(df,df1,on='date')

結果

          date      0      1     2      3  ...      6      7    8      9     10
0     20110104   8227  11282  7527  10879  ...   7620  10396  443   8833  14122
1     20110105   8335  11391  7529  10960  ...   7705  10394  444   8769  14090
2     20110106   8476  11465  7532  10868  ...   7561  10359  450   8737  14488
3     20110107   8467  11366  7537  10906  ...   7614  10368  451   8682  14319
4     20110111   8315  11111  7534  10829  ...   7232  10375  449   8752  14317
...        ...    ...    ...   ...    ...  ...    ...    ...  ...    ...    ...
2218  20200127  20593  32664  7245   9691  ...  20419  10492  928  21272   8659
2219  20200128  20506  31948  7239   9694  ...  20191  10489  922  21314   8538
2220  20200129  20660  32232  7232   9640  ...  20232  10492  926  21385   8605
2221  20200130  20428  32352  7236   9653  ...  20391  10509  912  21478   8598
2222  20200131  20141  32117  7231   9660  ...  20144  10508  916  21646   8477

[2223 rows x 12 columns]

pandas.merge

pandas.merge(データフレーム1,データフレーム2,on='キーの列名')

まとめ

単純だけど、よく使いそうなくだりなのでメモ