python excelコンテンツのtxtへの行ごとの書き込みを実現

2027 ワード

需要
最近テキストの分類をしていて、手に入れたデータがめちゃくちゃです.次のステップを行うには、分詞でもtfidfでもデータの分類を先にします.
 
メタデータ
3万件の文章で、1つのexcelでは、各行に各文章のid、内容(title_content)、分類(relative breeds)(計3列)がある.
 
ターゲット
分類によってサブディレクトリを作成し、文章は分類によってサブディレクトリに入れ、各文章はtxtファイルを書き込み、txtファイルのタイトルは文章idである.
 
README
Excelの読み込みにはpandas,pandasの逐行読み取り機能が使いやすい.
ネット上のいくつかのチュートリアルではxlrdが使われていて、少し複雑な感じがします.そして、xlrdにはファイルサイズの制限があるようです.比較するとpandasは大きさ制限がなく、個人的には感覚速度も速い.
パスの操作にはpython標準ライブラリosが使用されます.
同様の方法で、txt書き込みexcelを読み出し、csv書き込みexcelを読み出すこともできます.pandasの読み取りファイル関数を変更するだけでいいです.
pandasは使いやすいですね
"""
@version:python3.6

@author:chenyaooo

@concact:[email protected]

"""

import pandas as pd
import os


def creatcatesdir(data, target):
"""
      
"""
    #           
    cates = list(data['relative breeds'].unique())
    print(cates)
    for cate in cates:
        #        
        final_path = target + cate
        try:
            os.mkdir(final_path) #     
        except Exception as e:
            print(str(e))


def excel2txt(data, target):
    #       
    creatcatesdir(data, target)

    #     excel    
    for index, row in data.iterrows():
        #     
        content = row['title_content']
        #     ->   id
        filename = row['id']
        #     ->   
        cate = row['relative breeds']
        #       
        txt_path = target + cate + os.sep
        #        txt
        with open(txt_path + str(filename) + ".txt", 'wt') as f:
            f.write(content)


def main():
    #   pandas  excel
    data = pd.read_excel('../data/processed/article_breeds20k_tc.xls')
    #            
    targetfile = "../article/"
    excel2txt(data, targetfile)


if __name__ == '__main__':
main()

 
以上のすべての符号化に使用されるpythonデフォルト符号化utf-8
もっと良い方法があれば、伝言を残して教えてください.
データの整理をするのはすべて次のテキストの分類のためで、1篇のとても良いテキストの分類の教程を推薦します
python中国語テキスト分類