数据如下图:

用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. centos上正式环境邮件发送失败问题

    用celery异步发送邮件的时候遇到一个问题: 能接收到任务,但是就是执行不了, 也不报错 发现可能是settIngs.py里设置的端口有问题, 现在设置的端口是25, 改成465, 并且把ssl打开 ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:联合使用所有表格类

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 一、log4j日志框架的理论和不同场景使用

    1.日志框架: 工作中要进行Java输出日志时,你需要一个或者多个日志框架.框架能提供对象.方法和必要的配置来发送日志信息.Java语言本身有自带的日志实现包java.util.logging.还有很 ...

  4. 新增6 n个骰子的点数

    /* * * 面试题43:n个骰子的点数 * 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s. * 输入n,打印出s的所有可能的值出现的概率. * */ #include <iostream ...

  5. linux命令系列-mv(移动-重命名)

    #常用命令选项 默认覆盖 -n 不覆盖 -i 交互 -f 不交互直接覆盖 -u 只移动新的文件 -v 显示详细信息 #移动覆盖3个文件到/tmp目录 mv a.txt b.txt c.txt /tmp ...

  6. Outlook 2013 您的组织策略阻止我们为您完成此操作... 解决方法

    问题:点击outlook超链接,弹出“您的组织策略阻止我们为您完成此操作”的提示,无法打开链接. 环境 OS: Win10 专业版x64bit Outlook: 2013 浏览器:搜狗浏览器 解决办法 ...

  7. Vue 路由组件

    目录 组件数据局部化处理 路由逻辑跳转 组件传参 父传子 子传父 组件的生命周期钩子 路由传参 全家配置自定义 CSS 与 js 总结: 组件数据局部化处理 不管页面组件还是小组件,都可能会被多次复用 ...

  8. DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "XXX" failed with error code 0xC0209303.

    问题: 今天写了一个新的SSIS的ETL包,运行报如下错误. DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnec ...

  9. CodeBlocks_OpenGL配置

    CodeBlocks版本:13.12 下载OpenGL配置文件 1.glut.dll glut32.dll放入系统盘Windows\System32文件夹 2.glut.h放入CodeBlocks安装 ...

  10. vue - 封装input

    input子组件 <el-input :value="value" placeholder="请输入内容" size="small" ...