一个简单的数据处理任务

    • 任务说明
      • Step 1
      • Step 2
      • Step 3
      • Step 4
  • 一、将文件类型转化为csv类型
  • 二、删除异常数据写入text1
    • 1.思路
    • 2.代码
    • 3.text1中数据
  • 三、统计text1中动作数据,并对100取整写入text2
    • 1.思路
    • 2.代码
    • 3.打印结果
    • 4.text2中数据
  • 四、取text2中后三行数据,写入text3
    • 1思路
    • 2.代码
    • 3.text3中数据
  • 五、按要求读取text3数据,写入text4
    • 1.思路
    • 2.代码1
    • 3.代码2
    • 4..finally文件中数据

任务说明

样例如下:

18 Jogging 102271561469000 -13.53 16.89 -6.4
18 Jogging 102271641608000 -5.75 16.89 -0.46
18 Jogging 102271681617000 -2.18 16.32 11.07
18 Jogging 3.36
18 Downstairs 103260201636000 -4.44 7.06 1.95
18 Downstairs 103260241614000 -3.87 7.55 3.3
18 Downstairs 103260321693000 -4.06 8.08 4.79
18 Downstairs 103260365577000 -6.32 8.66 4.94
18 Downstairs 103260403083000 -5.37 11.22 3.06
18 Downstairs 103260443305000 -5.79 9.92 2.53
6 Walking 0 0 0 3.214402

Step 1

将数据集中所有信息异常的行删除。
比如上面的样例中第4行数据只有3个元素,而其他行都有6个元素,所以第4行是信息异常的行,将其删除。再如第12行数据的第3个元素明显也是有问题的,所以它也是信息异常的行,将其删除。
数据集中可能还会存在一些其他异常。
将全部信息处理之后,每行的元素以逗号为分隔符,写入文件test1
文件test1共100471行,样例如下:

6,Walking,23445542281000,-0.72,9.62,0.14982383
6,Walking,23445592299000,-4.02,11.03,3.445948
6,Walking,23470662276000,0.95,14.71,3.636633
...

Step 2

统计文件test1的数据中所有动作的数目并打印到屏幕,然后将动作数目对100取整后写入test2文件,多余的信息行抛弃。比如统计出Jogging的数量为3021次,则在屏幕上打印Movement: Jogging Amount: 3021,然后将前3000行信息写入test2文件。
文件test2共100200行。

Step 3

读取文件test2的数据,取每行的后3列元素,以空格为分隔符写入文件test3
文件test3共100200行,样例如下:

-0.72 9.62 0.14982383
-4.02 11.03 3.445948
0.95 14.71 3.636633
...

Step 4

读取文件test3的数据,每行数据为一组,每组组内的元素以空格为分隔符,组与组之间的数据以逗号为分隔符,每20组元素为一行,写入文件finally
文件finally共5010行,样例如下:

-0.72 9.62 0.14982383,-4.02 11.03 3.445948,0.95 14.71 3.636633,-3.57 5.75 -5.407278,-5.28 8.85 -9.615966,-1.14 15.02 -3.8681788,7.86 11.22 -1.879608,6.28 4.9 -2.3018389,0.95 7.06 -3.445948,-1.61 9.7 0.23154591,6.44 12.18 -0.7627395,5.83 12.07 -0.53119355,7.21 12.41 0.3405087,6.17 12.53 -6.701211,-1.08 17.54 -6.701211,-1.69 16.78 3.214402,-2.3 8.12 -3.486809,-2.91 0 -4.7535014,-2.91 0 -4.7535014,-4.44 1.84 -2.8330324

一、将文件类型转化为csv类型

由于OriginalData文本类型并非是csv,因此第一步要将其用python转化为csv文件类型

转变前

代码

fp=open('C:\\Users\\Anan\\Desktop\\OriginalData','r')
fp_new=open('C:\\Users\\Anan\\Desktop\\OriginalData.csv','w')
for row in fp:row=row.replace(' ',',')fp_new.write(row)
fp.close()
fp_new.close()

转变后

将此文件保存到pycharm中进行后续操作

二、删除异常数据写入text1

1.思路

将每行长度不为6,并且第三列数据为0的异常数据删除

2.代码

import csv
with open('OriginalData.csv','r',newline='') as csv_in_file:with open('OriginData_text1.csv','w',newline='') as csv_out_file:filereader = csv.reader(csv_in_file)filewriter = csv.writer(csv_out_file)#删除掉行长度不为6的并且第三个数据为0的数据for row in filereader:if len(row) == 6 and float(row[2]) != 0 :filewriter.writerow(row)

3.text1中数据

共计100471行

三、统计text1中动作数据,并对100取整写入text2

1.思路

先统计出每种动作出现的总次数,并打印出来次数,再对其取整,之后再打开一次csv文件,将符合行数的数据存入到text2中

2.代码

import csv
with open('OriginData_text1.csv','r',newline='') as csv_in_file:filereader = csv.reader(csv_in_file)Walking_count = 0Jogging_count = 0Upstairs_count = 0Downstairs_count = 0Sitting_count = 0Standing_count = 0for row in filereader:if row[1] == 'Walking':Walking_count += 1if row[1] == 'Jogging':Jogging_count += 1if row[1] == 'Upstairs':Upstairs_count += 1if row[1] == 'Downstairs':Downstairs_count += 1if row[1] == 'Sitting':Sitting_count += 1if row[1] == 'Standing':Standing_count += 1print('Movement: Walking        Amount: %d' % Walking_count)print('Movement: Jogging        Amount: %d' % Jogging_count)print('Movement: Upstairs        Amount: %d' % Upstairs_count)print('Movement: Downstairs        Amount: %d' % Downstairs_count)print('Movement: Sitting        Amount: %d' % Sitting_count)print('Movement: Standing        Amount: %d' % Standing_count)Walking_count = Walking_count // 100 * 100Jogging_count = Jogging_count // 100 * 100Upstairs_count = Upstairs_count // 100 * 100Downstairs_count = Downstairs_count // 100 * 100Sitting_count = Sitting_count // 100 * 100Standing_count = Standing_count // 100 * 100csv_in_file.seek(0,0)with open('OriginalData_text2.csv','w',newline='') as csv_out_file:filewriter = csv.writer(csv_out_file)for row_list in filereader:if row_list[1] == 'Walking' and Walking_count != 0:filewriter.writerow(row_list)Walking_count -= 1if row_list[1] == 'Jogging' and Jogging_count != 0:filewriter.writerow(row_list)Jogging_count -= 1if row_list[1] == 'Upstairs' and Upstairs_count != 0:filewriter.writerow(row_list)Upstairs_count -= 1if row_list[1] == 'Downstairs' and Downstairs_count != 0:filewriter.writerow(row_list)Downstairs_count -= 1if row_list[1] == 'Sitting' and Sitting_count != 0:filewriter.writerow(row_list)Sitting_count -= 1if row_list[1] == 'Standing' and Standing_count != 0:filewriter.writerow(row_list)Standing_count -= 1

3.打印结果

4.text2中数据

共计100200行

四、取text2中后三行数据,写入text3

1思路

运用选取特定的列的方法进行操作,之后按文件打开将间隔符由逗号变为空格

2.代码

import csv
value = [3,4,5]
with open('OriginalData_text2.csv','r',newline='') as csv_in_file:with open('OriginalData_text3.csv','w',newline='') as csv_out_file:filewriter = csv.writer(csv_out_file)filereader = csv.reader(csv_in_file)for row in filereader:row_output = []for index in value:row_output.append(row[index])filewriter.writerow(row_output)
fp = open('OriginalData_text3.csv','r')
fp_new = open('OriginalData_text3','w')
for row in fp:row = row.replace(',',' ')fp_new.write(row)
fp.close()
fp_new.close()

3.text3中数据

五、按要求读取text3数据,写入text4

1.思路

以文件的方式读入,用计数器进行计算,如果可以不能被20整除,则将换行符改为逗号,如果能整除则不变,最后存入到finally文件中

2.代码1

fp = open('OriginalData_text3','r')
fp_new = open('finally','w')
count = 0
for row in fp:count += 1if count % 20 != 0:row = row.replace('\n', ',')fp_new.write(row)
fp.close()
fp_new.close()

3.代码2

import csv
with open('OriginalData_text3','r',newline='') as csv_in_file:filereader = csv.reader(csv_in_file)count = 0file = open('finally', 'w')for row in filereader:count += 1row = str(row).replace("[","").replace("]",",")row = row.replace("'","")if count % 20 == 0:row = row.replace(",","\n")file.write(row)

4…finally文件中数据

总计5010行

此简单的数据处理任务就完成了

python 处理csv文件 一个简单的数据处理任务相关推荐

  1. [转载] 利用python对csv文件进行简单的数据分析

    参考链接: Python中的探索性数据分析 利用python对csv文件进行简单的数据分析 在通过爬虫爬取数据后,将数据放到csv文件里,为了方便观察,可以对数据进行简单的分析.下面我将对爬取的51j ...

  2. python创建csv文件并写入-Python 读写 CSV

    Python 读写 CSV 文件最简单的方法是使用自带的 csv 库,复杂点的可以使用 pandas.今天老唐简单记录一下使用自带的 csv 库怎么进行 Python 的文件读写操作,主要包括新建文件 ...

  3. 使用python将csv文件数据可视化

    简介 本文介绍如何通过python将csv文件数据简单地可视化. 使用到的文件 历年台风数量统计数据 代码 import csv import math import numpy as np impo ...

  4. python导入csv文件-Python从CSV文件导入数据和生成简单图表

    原标题:Python从CSV文件导入数据和生成简单图表 我们已经完成Python的基础环境搭建工作,现在我们尝试导入CSV数据 我们准备一个csv测试数据,文件名是csv-test-data.csv数 ...

  5. python对csv文件中的数据进行分类_python 数据处理 对csv文件进行数据处理

    数据如下图: 用python对数据进行处理: #读取csv文件内容并进行数据处理 import os import csv import datetime import re from itertoo ...

  6. python读取csv文件的方法-CSV文件在Python中的几种处理方式

    Comma Separated Values,简称CSV,它是一种以逗号分隔数值的文件类型.在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文 ...

  7. python写入csv文件的几种方法

    python写入csv文件的几种方法 最常用的一种方法,利用pandas包 import pandas as pd #任意的多组列表 a = [1,2,3] b = [4,5,6] #字典中的key值 ...

  8. python导入csv文件-Python读写文件(csv、txt、excel)

    大家做在数据处理的时候,肯定难免会与文件交互,那么对于指定的文件类型,我们如何操作呢? 1.python读写csv文件 import csv #python2可以用file替代open with op ...

  9. Python处理csv文件

    https://www.cnblogs.com/yanglang/p/7126660.html Python处理csv文件 CSV(Comma-Separated Values)即逗号分隔值,可以用E ...

最新文章

  1. 前端开发之retina屏幕
  2. 网站初学笔记3-HTML实用元素3
  3. 在Python中使用LDA处理文本
  4. python基础语法-异常处理
  5. 计算机窗口预览图,window_Win7系统资源管理器加上预览窗格功能的方法,  图片缩略图是否太小?PPT - phpStudy...
  6. 积分图像(Integral image)
  7. 张宇1000题高等数学 第十七章 多元函数积分学的预备知识
  8. jszip在线解压压缩文件
  9. 我用一张图彻底了解 SpringAOP 切面表达式
  10. JAVA将图片背景色设置为透明
  11. 【EGE】五子棋小游戏 (鼠标控制)
  12. vr全景三维产品交互展示设计
  13. 对多个Word文件批量添加页码,自由分页。Word精灵V5.0
  14. 关键路径例题图表_关键路径法典型范例
  15. EPS HSS、HLR、IMS HSS有什么区别?分别用于什么场景
  16. 理清互联网金融的脉络(二)
  17. 阿里高级体验设计专家朱斌:如何通过设计管理用户注意力?
  18. 高等工程数学(张韵华,汪琥庭,宋立功)—— 第二篇:数值计算
  19. 微信订阅号之连接服务器
  20. 前端的小玩意(9.5)——做一个仿360工具箱的web页面(完结篇,可以跑起来的工具箱)

热门文章

  1. Snort 用户手册
  2. 【原】Oracle 11.2.0.1 64bit for RHEL6.0 Server x86_64 静默安装
  3. iOS开发之视频播放时出现播放不了的情况
  4. 火山PC布局器套布局器
  5. 有源医疗器械的开发过程和各阶段的注意事项(九)——————设计验证阶段
  6. 快速了解iframe框架:
  7. BGP MPLS VPN(OPTION B)实验笔记
  8. MySQL常用函数大全(面试篇)
  9. 层次分析法 AHP
  10. Java基础匿名内部类