用于python环境下的数据操作_写给非计算机相关专业的同学——从零开始如何用python处理数据(包括如何安装环境)...

文章目录

1. 使用语言和包

1.2 pandas包的安装(这里只是一个例子)

2. 要做的一个数据处理

2.1 数据处理的需求:

2.2 代码实现

2.2.1 思路

2.2.2 读入原来的表

2.2.3 找到速度为零的所有记录

2.2.4 找到对应的车(要删的)

2.2.5 写一个新的表格(删除操作完成后)

2.3 代码执行

3. 代码放上来吧:

这篇博客是一个经济管理学院的同学让我帮忙处理数据之后,心血来潮写一篇教程类的博客,面向的是非计算机专业的同学,所以比较基础

1. 使用语言和包

这里我用的是python进行处理。So, why python?

Python语法相对简单,不是程序员的话,当做工具来用还是不错的。(如果是程序员,我建议还是C语言起步,充分了解相关概念和语法,其他的语言相比C语言都多多少少做了简化)

其次Python里面封装好的包有很多很多,所以很多操作,我们不需要自己写函数,大大减少了在写代码上花费的时间

比较安全,这里说的有点牵强,不过我也要强调一下。曾经在C语言里面学习的指针,其值是一个内存地址。如果你代码能力不足,不小心让指针指向某个甚至某几个系统的变量,然后你还做了数据的更改,可能你的系统就被你弄坏了。Python大多数情况不需要你自己去定义,去写指针。所以,我说比较安全

1.1 python环境安装

这里我就用这位同学的电脑当做实例来讲解。

首先python她的电脑上是有的。按下"win+R":

32a3532d4eae1c5e00bad3e66cda78e1.png

输入CMD,然后确定

弹出的窗口中输入python,然后回车:

52d3b169e739ffbeffe588cd6f33a48d.png

可以看到她安装的是python3.8,对于pandas这个包,版本已经足够了。

如果第一次安装当然直接装python3.8就好,如果之前装过,且版本在python2的时代,那你就比较麻烦啦,首先去装一个python3,然后后面需要在pycharm中更改python interperter,改为python3.

至于安装python我不想多讲,给个链接自己体会吧:

python3安装教程

接下来去官网下载pycharm,并安装

这里给个链接吧:

这个家伙是下载网址的连接

564979213290bbe370117edb8c74f521.png

dc7d32d3486652e6e283c624c382e268.png

一般情况下,刚刚安装好的pycharm打开以后会出现这个情况:

144094388d4247e19d67ab77e0970c66.png

那是因为你的pycharm还没有导入python interpreter,接下来点击左上角的file->settings

d760f327b7e847185043cdd81275a4e2.png

这里选择Project下的Python Interpreter:

a8d604e296607725bd59b01096a8d60a.png

啊!居然是空的。。。当然是空的啦,需要手动添加一下interpreter,点左上角那个齿轮,然后点add

30ebfb1bb44d8852381e766f57f607be.png

接下来把你的之前安装好的python放进来就可以了:

3e793083093bd0209cf061dffeb31841.png

1.2 pandas包的安装(这里只是一个例子)

这边数据处理我选择用的是pandas,其他的包安装起来都是一样的

上一步添加好了python的包之后,就能看到有这两个家伙已经在这里了:

d650e6cddbab2dbd215ae554926cd790.png

接下来我们要去安装pandas,我仅提供一种安装方案吧,其他的去Baidu上都有

点击右边的“+”或者按下"ALT+INSERT"

89a910828caf6457bbaf95272115922c.png

如果在国内的话,我建议做这样一个操作,就是把下载地址改为清华源。国外的小伙伴们就不用啦,点击下方的Manage Repositories,进入下面这个页面:

5a359dfbb0009d781c3635b7188e1ad4.png

点击右边的"+",输入这个地址:

https://pypi.tuna.tsinghua.edu.cn/simple

156dd5c3546414dce724418b63d404af.png

然后把原先那个可以删了,点击确定。然后返回刚刚那个界面,在上方搜pandas,点击下面的install package就行了

e1d1a1a3e979ecf02b9bdbf78e64015e.png

然后你就会发现它在自动安装了:

ac7c6cb271f6dc039ca308e2976831f6.png

2. 要做的一个数据处理

安装好了上述东西只是一个开始,接下来的东西才是重点–数据处理

由于不同数据的不同处理多种多样,我也不方便一次全讲了,只好拿这个例子,给尝试进行数据处理的同学们做一个示范:

2.1 数据处理的需求:

拿到一个很大的表,表里面每一行为一条记录,我现在要找出速度(第7列)都为0的车牌号(第3列),并且删除它们。

举个例子,下表中,7057和9205的两辆车是没有速度为0的记录的,所以是铁定不删的

然后是5052这辆车,有速度为0的记录,并且有速度不为0的记录,所以也是不删的(这里代码写不好的话,可能会误删)

最后是5752这辆车,所有的记录中,速度都为0,所以是需要删除的

a22b8816768f28d68e812fd694a305f2.png

这里就用一个简单的例子展示一下怎么用python

2.2 代码实现

这里如果我从零开始讲python的话,又可以写一本书了,所以,基础知识仍然是跳过,我只讲思路,然后直接给代码。当然我会尽力讲的细一些

2.2.1 思路

先读入的数据在一个二维数组中存储

先找出所有速度为零的行(返回一个包含所有行号的一位数组即可)

然后找到对应的车牌号,这些车都被列入即将删除的列表

然后找该车牌号所有的记录中的速度,如果出现非0,就不删,其他的都是一定要删的

2.2.2 读入原来的表

首先,这张csv表应该放在python工程的目录下,目录在这里打开

1607904879103f8fa1537d54b1dd1c17.png

接下来打开那张表,我直接写了一个函数,输入是该文件的文件名(不要打.csv),然后返回一个二维数组

def read_data(file_name = 'old'):

with open('{}.csv'.format(file_name), 'r', encoding='utf-8') as rf:

data = (csv.reader(rf))

return data

2.2.3 找到速度为零的所有记录

找出所有速度为零的行(返回一个包含所有行号的一位数组即可)

这里给新手的提示,首先数组是0开始的,所有第7列这边就要写6

其次表格里存的0,我们读进来以后其实是字符,而非一个整数,所以这里是‘0’

#这个是用来找哪一行有0的函数!!

def find_zeros(table):

rownums = []

for rownum in range(len(table)):

if (table[rownum][6] == '0'):

rownums.append(rownum)

return rownums

2.2.4 找到对应的车(要删的)

然后找到对应的车牌号,这些车都被列入即将删除的列表

然后找该车牌号所有的记录中的速度,如果出现非0,就不删,其他的都是一定要删的

#这个函数用来找那些要删的车,返回的是一个行号的列表

def find_all_zero_cars(table,zero_rownums):

row_of_car_nums=[]

#find all the cars

car_number=[]

for rownum in zero_rownums:

car_number.append(table[rownum][2])

for number_of_car in range(len(car_number)):

going_be_deleted = True

for i in range(len(table)):

if ((table[i][2] == car_number[number_of_car]) and not(table[i][6]=='0')):

going_be_deleted = False

if (going_be_deleted):

row_of_car_nums.append(car_number[number_of_car])

return row_of_car_nums

2.2.5 写一个新的表格(删除操作完成后)

def delete_data(car_numbers):

file_new = 'new_data.csv'

file_old = 'old.csv'

with open(file_old,'r',newline='',encoding='utf-8')as file_old,

open(file_new,'w',newline='',encoding='utf-8') as file_new:

f_csv_old = csv.reader(file_old)

f_csv_new = csv.writer(file_new)

for i, rows in enumerate(f_csv_old): # 保留header

if i == 0:

f_csv_new.writerow(rows)

break

for index in range(len(car_numbers)):

for rows in f_csv_old:

if rows[2] != car_numbers[index]:

f_csv_new.writerow(rows)

os.remove("old.csv")

2.3 代码执行

代码的执行都是在main函数中的,所以,想要执行上面的函数,就需要在main函数中调用。

这里在提示新手一下,上面的包安装后需要Import一下

import csv

import os

import data_dispose

if __name__ == '__main__':

table = read_data()

print(len(table))

delete_data(data_dispose.find_all_zero_cars(table,data_dispose.find_zeros(table)))

之后点击右上角的执行按钮就可以运行了

4ee393317ea1da6942c1e8815de33d34.png

执行之后我们会发现这里多了一个"new_data.csv"

6074392bbd078a9791824de6c5ba2810.png

打开后发现就是处理结束后的表:

e05e82707e961c086613bb3b2ab391f4.png

3. 代码放上来吧:

这个家伙是代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值