Использование Os и Glob для поиска и объединения файлов .csv и Pandas для создания DataFrame - PullRequest
0 голосов
/ 31 октября 2019

Проблема

У меня есть несколько каталогов, каждый из которых содержит подкаталоги. Эти подкаталоги содержат файлы .csv с числовыми данными в них. Я хочу использовать glob и os (не сценарии оболочки) для поиска в двух указанных каталогах, а затем для поиска определенных папок и объединения их в формате, который я опишу ниже.

dir1 contains subdir1 contains A.csv 
     contains subdir2 contains B.csv

dir2 contains subdir1 contains A.csv
     contains subdir2 contains B.csv

В ОБАХ СЛУЧАЯХ

>>> cat A.csv
1
2
3
4
5
>>> cat B.csv
6
7
8
9
10

МОЕ ЖЕЛАННОЕ ПОВЕДЕНИЕ

Найдите A.csv в dir1 и найдите A.csv в dir2, выполнив поиск в каждой папке и каталоге,а затем объединить их. После слияния создайте pandas.DataFrame

>>> python3 merge.py dir1 dir2 A.csv
# prints df created from out.csv
   x   y
0  1   1 
1  2   2 
2  3   3
3  4   4
4  5   5
>>> cat out.csv
1
2
3
4
5
1
2
3
4
5

ЗАДАТЬ ВОПРОСЫ, ЕСЛИ НУЖНЫ

1 Ответ

1 голос
/ 31 октября 2019

Вы можете использовать os.walk для просмотра каталогов и glob.glob для поиска * .csv файлов, например:

from os import walk
from os.path import join
from glob import glob
root_dir = '/some/path/to_a_directory/'
for rootdir, _, _ in walk(root_dir):
    all_csv = glob(join(root_dir, '*.csv'))
    for fpath in all_csv:
        # Open the file and do something with it
...