Я новичок в концепции 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 правильным способом?