python将数据逐行写入excel_python实现excel内容逐行写入txt

本文介绍如何使用Python的pandas库,将含有文章ID、内容和分类的Excel数据逐行读取,按分类创建子目录,并将每篇文章内容写入对应分类的TXT文件中。
摘要由CSDN通过智能技术生成

需求

最近在做文本分类,拿到的数据很乱。要做下一步,不管是分词还是tfidf都要先做数据的分类。

元数据

3万篇文章,在一个excel中,每行有每篇文章的id、内容(title_content)、分类(relative breeds),(共三列)。

目标

按分类创建子目录,文章按分类放入子目录中,每篇文章写入一个txt文件,txt文件标题为文章id

README

excel的读入使用了pandas,pandas的逐行读取功能很好用。

网上有些教程使用了xlrd,感觉有点复杂,而且xlrd好像有文件大小的限制。相比较而言pandas没有大小限制,个人感觉速度也比较快。

路径的操作使用了python标准库os。

同样的方法,也可以读取txt写入excel,读取csv写入excel。只需要更改pandas的读取文件函数就好了。

pandas真好用啊

"""

@version:python3.6

@author:chenyaooo

@concact:sunchingyo@icloud.com

"""

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

如果还有更好的方法,请留言指教。

做数据整理都是为了接下来的文本分类,推荐一篇非常好的文本分类教程

python 中文文本分类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值