чтение файлов и запись содержимого в pd.dataframe - PullRequest
0 голосов
/ 19 февраля 2020

Я новичок в концепции panda и df.

У меня есть две папки, в каждой папке есть количество файлов. Я хочу создать CSV-файл со следующей структурой:

столбцы [содержимое] [категория]

строка1 [содержимое файла1] [папка 1]

строка2 [содержимое of file2] [folder 1]

row3 [Content of file3] [folder 2]

Таким образом, категории - это количество папок, а содержимое - это текст, считанный из каждого файла.

Я пытался сделать это без panda df, написав этот код:

path = r'path/to/main_folder/'
folder = os.listdir(path)

for file in folder:
    print (file)
    with open(path + file, 'r', encoding="ISO-8859-1") as f:
        content = f.read()
        category = "1"
        print (content+";"+category)
        with open (r'path/to/main_folder/1/all.txt', "a", encoding="ISO-8859-1") as written:
            written.write(content +";"+ category +'\n')

Однако он создал CSV-файл, где строки - это строки из всех файлов, и что я на самом деле хочу сделать, это создать одну строку на файл. Так что каждая строка содержит весь текст для файла.

Я написал общую идею:

# Import pandas library 
import pandas as pd 

# Create the pandas DataFrame 
df = pd.DataFrame(columns = ['Content', 'Category']) 

# print dataframe. 
df


path = r'path/to/main_folder/'
folder = os.listdir(path)

# List with the 2 categories
list_categories = [1,2]

for category in list_categories:
    print (category)
    # 1

    category_folder = path + str(category) + '/'
    print (category_folder)
    # r'path/to/main_folder/1' for category 1 

    folder = os.listdir(category_folder)
    for file in folder:
        print (file)

        with open(category_folder + file, 'r') as f:
            df['category'] = category
            df['Content'] = f.read()

Я борюсь с концепцией записи в столбцы и строки в фрейме данных. Кроме того, df ['category'] = category показывает ошибку:

TypeError: 'str' object does not support item assignment

любая помощь в реализации этой идеи, используя df правильным способом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...