测试数据:

data.txt【需要处理的数据】

China
china
American
Apple
Apples
banana
this
it
aa
bb
aaa
does
mean
f
s
what zz

invalid.txt 【无效的数据】

what
is
it is
aa
does
aaa

需求一:通过代码实现:凡是需要处理的数据中的任何一行的其中任意一个单词在无效数据中的任何一行中出现过【无效数据中的一行看作一个整体】,则把需要处理的数据的改行给去掉,最后输出想要的数据new_data.txt和排除的数据error_data.txt。

示例代码:

import pandas as pd
#  原始数据
data_base = pd.read_csv('invalid.txt', header=None)
base_list = [i for i in data_base[0]]
# print(base_list)#  需要处理的数据
data = pd.read_csv('data.txt', header=None)
data_list = [i for i in data[0]]
# print(data_list)#  获取有效数据的索引
count_list = []
i = 0
for j in data_list:x_list = [x for x in j.split() if x not in base_list]if len(x_list) == len(j.split(' ')):count_list.append(i)i += 1#  获取无效数据的列表索引
count_list_2 = []
count_list_all = [i for i in range(len(data_list))]
for i in count_list_all:if i not in count_list:count_list_2.append(i)
# print(count_list_2)#  有效数据生成
for i in count_list:with open('new_data.txt', 'a') as f:my_data = f.write(data_list[i] + '\n')print(data_list[i])#  无效数据生成
for i in count_list_2:with open('error_data.txt', 'a') as f:my_data = f.write(data_list[i] + '\n')print(data_list[i])

生成结果:

需求二:通过代码实现:凡是需要处理的数据中的任何一行的其中任意一个单词在无效数据中的任何一行中出现过【无效数据中的一行看作一个整体】,则把需要处理的数据的改行给去掉,最后输出想要的数据new_data.txt和排除的数据error_data.txt。然后再从想要是数据new_data.txt中筛选出包含水果词fruit.txt的数据include_fruit_data.txt和再new_data.txt中不包含水果词的数据not_include_fruit_data.txt。最后再从not_include_fruit_data.txt中筛选出包含地域词areas.txt的数据文件include_areas_data.txt和其它剩余的有效数据other_valid_data.txt。

new_data.txt:【上一步代码执行输出的结果】

China
china
American
Apple
Apples
banana
this
bb
mean
f
s

fruit.txt

banana
apple
Apple

areas.txt

China
beijing

示例代码:

import pandas as pd
#  原始数据
data_base = pd.read_csv('invalid.txt', header=None)
base_list = [i for i in data_base[0]]
# print(base_list)#  需要处理的数据
data = pd.read_csv('data.txt', header=None)
data_list = [i for i in data[0]]
# print(data_list)#  获取有效数据的索引
count_list = []
i = 0
for j in data_list:x_list = [x for x in j.split() if x not in base_list]if len(x_list) == len(j.split(' ')):count_list.append(i)i += 1#  获取无效数据的列表索引
count_list_2 = []
count_list_all = [i for i in range(len(data_list))]
for i in count_list_all:if i not in count_list:count_list_2.append(i)
# print(count_list_2)#  有效数据生成
for i in count_list:with open('new_data.txt', 'a') as f:my_data = f.write(data_list[i] + '\n')print(data_list[i])#  无效数据生成
for i in count_list_2:with open('error_data.txt', 'a') as f:my_data = f.write(data_list[i] + '\n')print(data_list[i])#  读取有效生成的数据
new_data_base = pd.read_csv('new_data.txt', header=None)
new_base_list = [i for i in new_data_base[0]]#  读取水果词
fruit_data = pd.read_csv('fruit.txt', header=None)
fruit_data_list = [i for i in fruit_data[0]]#  获取有效数据中包含水果词的索引
fruit_count_list = []
i = 0
for j in new_base_list:x_list = [x for x in j.split() if x in fruit_data_list]if len(x_list) > 0:fruit_count_list.append(i)i += 1#  获取无效数据的列表索引
fruit_count_list_2 = []
fruit_count_list_all = [i for i in range(len(new_base_list))]
for i in fruit_count_list_all:if i not in fruit_count_list:fruit_count_list_2.append(i)#  从有效数据中筛选出包含水果词的数据
for i in fruit_count_list:with open('include_fruit_data.txt', 'a') as f:my_data = f.write(new_base_list[i] + '\n')print(new_base_list[i])#  从有效数据中筛选出不包含水果词的数据
for i in fruit_count_list_2:with open('not_include_fruit_data.txt', 'a') as f:my_data = f.write(new_base_list[i] + '\n')print(new_base_list[i])#  读取有效数据中不包含水果词的数据
new_new_data_base = pd.read_csv('not_include_fruit_data.txt', header=None)
new_new_base_list = [i for i in new_new_data_base[0]]#  读取地域词
areas_data = pd.read_csv('areas.txt', header=None)
areas_data_list = [i for i in areas_data[0]]#  获取不包含水果词的数据中包含地域词的索引
areas_count_list = []
i = 0
for j in new_new_base_list:x_list = [x for x in j.split() if x in areas_data_list]if len(x_list) > 0:areas_count_list.append(i)i += 1#  获取不包含水果词的数据中不包含地域词的索引
areas_count_list_2 = []
areas_count_list_all = [i for i in range(len(new_new_base_list))]
for i in areas_count_list_all:if i not in areas_count_list:areas_count_list_2.append(i)#  获取不包含水果词的数据中包含地域词的数据
for i in areas_count_list:with open('include_areas_data.txt', 'a') as f:my_data = f.write(new_new_base_list[i] + '\n')print(new_new_base_list[i])#  获取不包含水果词的数据中且不包含地域词的有效数据
for i in areas_count_list_2:with open('other_valid_data.txt', 'a') as f:my_data = f.write(new_new_base_list[i] + '\n')print(new_new_base_list[i])

执行结果:

 

​​​

为了让生成的这些数据在一个excel表格中明显的看出来,可以在上面代码的同一个目录下执行下面代码,生成my_data.csv文件

示例代码:

import csv
import pandas as pd#  0.获取数据
#  原始无效数据
data_base = pd.read_csv('invalid.txt', header=None)
base_list = [i for i in data_base[0]]
#  错误数据
error_data = pd.read_csv('error_data.txt', header=None)
error_list = [i for i in error_data[0]]
#  水果词数据
fruit_data = pd.read_csv('include_fruit_data.txt', header=None)
fruit_list = [i for i in fruit_data[0]]
#  区域词数据
areas_data = pd.read_csv('include_areas_data.txt', header=None)
areas_list = [i for i in areas_data[0]]
#  剩下的其它词
other_data = pd.read_csv('other_valid_data.txt', header=None)
other_data_list = [i for i in other_data[0]]#  1.创建文件对象
f = open('my_data.csv', 'w', encoding='utf-8', newline="")#  2.基于文件对象构建csv写入对象
csv_write = csv.writer(f)#  3.构建列表头
csv_write.writerow(['all_words', 'invalid_data', 'fruit_words', 'areas_words', 'others_valid_words'])#  4.写入csv文件
data1_len = len(base_list)
data2_len = len(error_list)
data3_len = len(fruit_list)
data4_len = len(areas_list)
data5_len = len(other_data_list)
max_len = max(data1_len, data2_len, data3_len, data4_len, data5_len)
for i in range(max_len):if data1_len < max_len:base_list.append(' ')data1_len += 1if data2_len < max_len:error_list.append(' ')data2_len += 1if data3_len < max_len:fruit_list.append(' ')data3_len += 1if data4_len < max_len:areas_list.append(' ')data4_len += 1if data5_len < max_len:other_data_list.append(' ')data5_len += 1csv_write.writerow([base_list[i], error_list[i], fruit_list[i], areas_list[i], other_data_list[i]])#  5.关闭文件
f.close()

执行效果:

多个文件中的数据处理,输出自己想要是数据相关推荐

  1. java基础IO流使用读取一个文件中的文字输出到控制台上

    读取一个文件中的文字输出到控制台上 import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IO ...

  2. C++在终端、文件中就地覆盖输出的方法

    C++在终端.文件中就地覆盖输出的方法 1.在终端就地覆盖输出字符 2.在文件中就地覆盖输出字符 3.总结 1.在终端就地覆盖输出字符 先上效果图,如图1-1所示: 图1-1 对应的程序如下: #in ...

  3. boost::regex模块在 cpp 文件中搜索类定义,使用全局数据的测试程序

    boost::regex模块在 cpp 文件中搜索类定义,使用全局数据的测试程序 实现功能 C++实现代码 实现功能 boost::regex模块在 cpp 文件中搜索类定义,使用全局数据的测试程序 ...

  4. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )

    文章目录 一.逐行遍历文件文本数据 1.获取文件中的文本行 2.查询文本行数据 3.追加文件数据 4.使用占位符方式拼接字符串 二.完整代码示例 一.逐行遍历文件文本数据 1.获取文件中的文本行 调用 ...

  5. R语言 | 将CSV文件中原本为空白值的chr数据赋值为NA

    MPHS2011.3<-read.csv("D:\\Desktop\\EDA\\EDAprojectdata\\MPHS_US_2011.csv",header = TRUE ...

  6. System.out. 输出到指定文件中

    用下面的方法,就可以输出到指定文件中了 String strJSON = "这是一段字符串,这段字符串将会打印到指定文件中."; //日志输出到指定文件中 PrintStream ...

  7. python程序命令行输出记录到log文件中

    $ python xxx.py args1 >> data/log.txt第一条命令的含义是:将xxx.py这个python文件中print()原本输出到console的内容重定向到&qu ...

  8. python使用logging打印信息到日志文件中

    python使用logging打印信息到日志文件中 参考 Python输出日志信息 Python + logging 输出到屏幕,将log日志写入文件 使用logging打印日志到文件中的目的是: 解 ...

  9. 【C++】读取 .csv / .xlsx 文件中的指定数据(非常实用)

      说明:如果您的文件是 .xlsx ,需要您先打开 .xlsx 文件,然后另存为 .csv 文件,最后使用下述代码进行读取!!!         注意:直接修改文件后缀不行哦!!!          ...

最新文章

  1. Ubuntu查看硬件详细信息
  2. 实验 4 在分支循环结构中调用自定义函数
  3. Point-to Analysis指针分析(2)
  4. Android NDK带来什么
  5. [Vue源码分析] 模板的编译
  6. linux加一个2t硬盘吗,在linux下新增一块硬盘的操作。(包含大于2T的硬盘在linux下挂载操作)...
  7. MongoDB高可用集群搭建
  8. 玩转CSS选择器(一) 之 使用方法介绍
  9. HttpHandler与HttpModule的用处与区别
  10. xp电脑主题包_怎么让手机变电脑?一个APP让你的安卓手机变Windows电脑
  11. 台式电脑键盘按键错乱_电脑键盘按键怕误触怎么办?用这款软件帮你屏蔽指定键盘按键!支持替换按键!...
  12. strcpy()、memcpy()、memmove()、memset()及其应用
  13. ltp-ddt的makefile结构
  14. 子列和列_最大子列和 - fanlinglong - 博客园
  15. UVa 1292 - Strategic game
  16. 将字符串转换为数组_LeetCode108-将有序数组转换为二叉搜索树
  17. 贪吃蛇(C语言实现)
  18. 1694件AI事件大盘点!2020年12月,哪些让你记忆深刻
  19. 旋转矩阵中6保6_旋转矩阵公式中6保5
  20. 个人计算机虚拟化,CPU虚拟化是什么?家用电脑需要开启虚拟化吗?

热门文章

  1. Java全能手册火了!Redis/Nginx/Dubbo/Spring全家桶/啥都有
  2. 数据不够,用GAN来凑!
  3. NLP实践:对话系统技术原理和应用
  4. AI一分钟|FF联合创始人聂天心离职;Siri联合创始人从苹果离职
  5. PyTorch 重磅更新,不只是支持 Windows
  6. 关掉可穿戴部门后,英特尔还将调整自动驾驶业务
  7. 五年之后,你的企业是拥抱AI,还是已被淘汰
  8. 国内最牛逼的笔记,不接受反驳!!
  9. Elasticsearch 如何做到快速检索 - 倒排索引的秘密
  10. RabbitMQ 延迟队列实现定时任务的正确姿势,你学会了么?