数据如下图:

用python对数据进行处理:

#读取csv文件内容并进行数据处理

import os
import csv
import datetime
import re
from itertools import islice csv_file_path = 'query_hive.csv' #文件路径
write2_csv_file_path = 'hive_result2.csv' #处理第二列数据
write6_csv_file_path = 'hive_result6.csv' #处理第六列数据 #定义一个写入数据函数
def write_csv_file():
if os.path.exists(csv_file_path) is False :
print("不存在文件鸭!")
return with open(csv_file_path,'r') as r_file:
#读取csv文件内的所有内容
file_read = csv.reader(r_file)
for row in islice(file_read,1,None): #如果第一行是列名,用islice函数直接跳过第一行 islice(文件名,跳过的行数,None)
print(row)
#处理第六列数据
row6 = row[5] #第六列数据
len_str6 = len(row6) #第六列数据的长度
print("此列字符串的长度:{}".format(len_str6))
L_str6 = list(row6[1:len_str6-1].split('|')) #对第六列数据进行分割得到数字字符串列表
print("此列得到数字字符串列表:{}".format(L_str6))
L_num6 = list() #创建一个空列表存储数据
for s in L_str6: #将字符串列表变为数字型列表
if s=='' :
L_num6.append(0)
else:
L_num6.append(int(s))
print("此列得到数字型数据列表{}".format(L_num6)) #处理第一列数据
row2 = row[1] #第一列数据
len_str2 = len(row2) #第一列数据的长度
print("此列数据串的长度".format(len_str2))
L_str2 = list(re.split("[/.]",row2[1:])) #用多个分隔符分割字符串
print("此列得到字符串列表{}".format(L_str2)) #写入2数据
csv_write_list = [L_str2] #用于写入文件的数据
with open(write2_csv_file_path,'a',newline='') as w_file: #若没有newline=''每读入一行数据后跟一个空行
writer = csv.writer(w_file,dialect='excel')
for row_item in csv_write_list:
writer.writerow(row_item) #写入6数据
csv_write_list = [L_str6]
with open(write6_csv_file_path,'a',newline='') as w_file: #若没有newline=''每读入一行数据后跟一个空行
writer = csv.writer(w_file,dialect='excel')
for row_item in csv_write_list:
writer.writerow(row_item) if __name__ == "__main__":
write_csv_file() #注意
'''
1)写入文件数据的时候,只能以字符串的格式写入!
2)L_str 是处理之后的字符串列表,若要将其写入文件中,还需要进一步操作:将其作为新列表的一个元素进行读入
暨csv_write_list = [L_str6]
3)如果打开待写入文件时没有参数 newline='' ,那么最后的文件中每一数据行后都有一个空行
4)如果数据文件第一行是列名,用islice函数直接跳过第一行 islice(文件名,跳过的行数,None)
'''

  

python 数据处理 对csv文件进行数据处理的更多相关文章

  1. python在处理CSV文件时,字符串和列表写入的区别

    概述 Python在处理CSV文件时,如果writerow的对象是<type 'unicode'>字符串时,写入到CSV文件时将会出现一个字符占一个单元格的情况: 但是将字符串转换为列表类 ...

  2. python中操作csv文件

    python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...

  3. python 数据处理 对txt文件进行数据处理

    数据: 对txt文件进行数据处理: txt_file_path = "basic_info.txt" write_txt_file_path = "basic_info1 ...

  4. [Python]-pandas模块-CSV文件读写

    Pandas 即Python Data Analysis Library,是为了解决数据分析而创建的第三方工具,它不仅提供了丰富的数据模型,而且支持多种文件格式处理,包括CSV.HDF5.HTML 等 ...

  5. Python: 对CSV文件读写 和 Md5加密

    1. python 有专门的csv包,直接导入即可. import csv: 2. 直接使用普通文件的open方法 csv_reader=open("e:/python/csv_data/l ...

  6. Python在向CSV文件写中文时乱码的处理办法

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode.当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的.对中文 ...

  7. [Python Study Notes]csv文件操作

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  8. 【python】写csv文件时遇到的错误

    1.错误 在许多文件中,写入csv文件时都加"wb",w指写入,b指二进制 如: csvwrite=csv.writer(open("output.csv",& ...

  9. Python中读取csv文件内容方法

    gg 224@126.com 85 男 dd 123@126.com 52 女 fgf 125@126.com 23 女 csv文件内容如上图,首先导入csv包,调用csv中的方法reader()创建 ...

随机推荐

  1. MySQL(window10)加载配置文件的顺序

    mysql加载配置的顺序为:(mysql --help中有详细的说明) C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf D:***\my ...

  2. 九 三种Struts2访问Servlet方式总结

    Servlet是单例的,Action是多例的. 多个程序访问Servlet只会创建一个Servlet对象,多个程序访问Action会创建对应的多个Action对象. 跳转页面可以获取对象的属性,说明使 ...

  3. FTP虚拟账户

    部署一个内网FTP服务器 为了解决公司员工文件存储和下载的需求.要求部署内部FTP服务器,员工可以通过自己的账号的权限对FTP进行操作. 1)公司公共文件可以通过匿名下载 2)公司财务部.商务部.行政 ...

  4. vs2013中配置SQLite数据库

    转载:https://maplefan.com/index.php/2019/08/14/visual-studio-2013%e9%85%8d%e7%bd%aesqlite3%e7%9a%84%e6 ...

  5. linux 部署java 项目命令

    1:服务器部署路径:/home/tomcat/tomcat/webapps  (用FTP工具链接服务器把包上传到此目录) 2:进入项目文件夹 cd /home/tomcat/tomcat/webapp ...

  6. Qtxlsx的使用

    上一遍讲述了基于Qt5.9.8下编译Xtxlsx,本遍讲述基于Qt5.9.8下使用Qtxlsx 1.打开Qt Creator 4.8.2(Enterprise),创建工程,选择版本 2.在pro文件中 ...

  7. YUV颜色编码格式

    YUV 颜色编码采用的是 明亮度 和 色度 来指定像素的颜色,而色度又定义了颜色的两个方面:色调和饱和度. 其中: Y 表示明亮度(Luminance.Luma) U 和 V 表示色度(Chromin ...

  8. 「SDOI2009」HH的项链

    「SDOI2009」HH的项链 传送门 数据加强了,莫队跑不过了. 考虑用树状数组. 先把询问按右端点递增排序. 然后对于每一种贝壳,我们都用它最右一次出现的位置计算答案. 具体细节看代码吧. 参考代 ...

  9. 由前端登录验证,页面跳转,携带headers token引发的思考和尝试

    目录 1 前言 2 我的实现方式与存在的问题 3 我想到的解决方案 3.1 前端跳转时携带headers{'token': token} 不就行了(经验证不可行) 3.2 前端跳转封装请求,携带hea ...

  10. 完全取代VC上原有的view

    如果需要在这个VC上放置一个subviewA,作用相当于取代self.view,那么最好不要使用 [self.view addSubView: subviewA]; 而要使用 self.view = ...