Pythonでフォルダ内の複数のtxtファイルを一度に読み込み、dataFrameに格納したい

投稿者: Anonymous

Jupyterで下記にある複数のtxtファイルを一度に読み込むにはどうすればいいのでしょうか。
やりたい事はPC内のfileというディレクトリに格納された22のファイルを読み込んで、それぞれを名前の異なるdataFrameに格納したいです。

皆様でしたらどうされるでしょうか。
大変恐縮ですが、ご教授いただけましたら幸いです。

■txtファイル
1_1_0.txt
1_2_0.txt
1_3_0.txt
2_1_0.txt
2_2_0.txt
2_3_0.txt
2_4_0.txt
2_5_0.txt
2_6_0.txt
2_7_0.txt
2_8_0.txt
3_1_0.txt
3_2_0.txt
3_3_0.txt
3_4_0.txt
3_5_0.txt
3_6_0.txt
3_7_0.txt
3_8_0.txt
4_6_0.txt
4_7_0.txt
4_8_0.txt

解決

以下の様にして、pandas.DataFrame オブジェクトを辞書(dict)に格納する方法も考えられます。
この場合、df['1_1_0']df['1_2_0'] などとしてアクセスする事が可能です。

import glob
import os
import pandas as pd

df = {}
for f in glob.glob(os.path.join("./", "file", "*.txt")):
  name = os.path.splitext(os.path.basename(f))[0]
  df[name] = pd.read_csv(f)

name = sorted(df.keys())
for i in (0, -1):
  print(f"name = {name[i]}n{df[name[i]]}")

# =>
name = 1_1_0
   a  b  c
0  1  1  0
name = 4_8_0
   a  b  c
0  4  8  0
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *