【问题标题】:How to collect into a pandas dataframe a set of documents?如何将一组文档收集到熊猫数据框中?
【发布时间】:2016-12-28 01:58:55
【问题描述】:

我有一个充满txt 文档的目录:

.
├── file.txt
├── file.txt
├── file.txt
...
├── file.txt
└── file.txt

如何将所有文档读入 pandas 数据框?换句话说,我的目标是在 pandas 数据框对象中存储一些像这样的文档 (*):

    id  text_blob
0   file_name.txt   Lore lipsum dolor done
1   file_name.txt   Lore lipsum ...
2   file_name.txt   dolor ...
3   file_name.txt   lore lipsum lore ...
4   file_name.txt   dolor...

到目前为止,我尝试了以下代码。但是,它不是 pythonic 并且我有一些格式错误(例如空间问题,'",格式。):

import glob, os, csv, argparse, sys

def retrive(directory_path):
    for filename in sorted(glob.glob(os.path.join(directory_path, '*.txt'))):
        with open(filename, 'r') as f:
            important_stuff = f.read().splitlines()
            oneline = [' '.join(important_stuff)]
            yield filename.split('/')[-1] + ', ' +str(oneline).strip('[]"')

def trans(directory,directory2):
            test = tuple(retrive(directory))
            with codecs.open(directory2,'w', encoding='utf8') as out:
                csv_out=csv.writer(out, delimiter='|')
                csv_out.writerow(['name','text_blob'])
                for row in test:
                    csv_out.writerow(row.split(', ', 1))


input_d = '../in'
out_d = '../out'



trans(input_d,out_d)

【问题讨论】:

  • 我不知道你期望的结果是什么样的。请阅读stackoverflow.com/help/mcvestackoverflow.com/help/how-to-ask
  • @piRSquared,感谢您的帮助。我希望在熊猫数据框中包含所有文档。正如您在 (*) 中看到的,pandas 数据框符合 .txt 文档的名称,右侧是文档的内容。

标签: python python-3.x pandas dataframe


【解决方案1】:
import glob, os
import pandas as pd

input_d = '../in'
filenames = []
blobs = []
for pathname in sorted(glob.glob(os.path.join(input_d, '*.txt'))):
    with open(pathname, 'r') as txtfile:
        filename = os.path.basename(pathname)
        filenames.append(filename)
        blob = ' '.join(txtfile.read().splitlines())
        blobs.append(blob)

df = pd.DataFrame({'id':filenames, 'text_blob':blobs})

可以在many ways. 中创建Pandas 数据帧,其中之一是传递一个dict 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 2020-12-14
    • 2021-12-01
    • 2017-12-19
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    相关资源
    最近更新 更多