如何从文件夹上传所有.txt文件并使用文件夹名称进行文本分类?

时间:2019-04-04 15:47:28

标签: python-3.x pandas

我的目录中只有几个子目录。每个子目录都有.txt文件。我尝试用两列创建DataFrame:

ui-button
txt文件中[text]行数据中的

以及[sentiment]行中的

:将来用于分类的子文件夹名称。例如:

text and sentiment

我尝试通过这种方式做到这一点:

           text | sentiment
data from 1.txt . folder name 1
data from 2.txt . folder name 1
data from 1.txt . folder name 2
data from 2.txt . folder name 2
def load(class_name):
    df = pd.DataFrame()

    texts = lambda file_name: preprocess(open('./train/{}/*.txt'.format(class_name, file_name)).read())

    df['text'] = texts
    df['sentiment'] = class_name
    return df
df_folder name 1 = load('folder name 1')
df_folder name 2 = load('folder name 2')

不幸的是,它不起作用。我需要帮助。

1 个答案:

答案 0 :(得分:0)

您可以循环浏览子目录及其中的文件,将数据保存到列表中,然后使其成为DataFrame。

data = list()
for folder in os.listdir('./cwd'):
    for file in os.listdir(os.path.join('./cwd', folder)):
        with open(os.path.join('./cwd', folder, file)) as text:
            words = text.read()
            data.append([words, folder])
df = pd.DataFrame(data, columns = ['text', 'sentiment'])

第一个for循环将遍历您的所有文件夹(您必须将“ ./cwd”更改为文件夹所在的位置)。第二个将遍历该文件夹中的所有文件。 with语句将打开和关闭文件,保存文本,然后附加文本和文件夹名称。