1. 导入数据
2. 处理数据
3. 分析数据
1. 导入数据
在程序开始的地方,导入所有需要的包,这里是专门用来处理csv文件的包。如果是excel表格,可以把它的后缀改为.csv,后面处理方法则相同。
import csv
#read file, for example
file_path = 'C:/Users/Mytest/test.csv'
file = open(file_path)
data = []
for i in file.readlines():
data.append(i)
file.close()
上面的file.readlines()就是把csv文件中的每一行都读出来。如果是file.readline(),则只会读首行出来。
另外,最后记得file.close(),养成良好的习惯。当然,也可以用with * open as*的方法。
2. 处理数据
现在我们把csv的数据一行行地读到了data这个列表里了。csv里数据有多少行,data的length就是多么大。
然后,先来清洗一下数据。
现在data[0]是一个尾端带'\n'的字符串。我们想把data的每一行都处理成像表格里一样,可以在上面读数据的程序中加入这么几行。
如下
new_data = []
for row in data:
tmp = row.strip('\n') #去掉每行最后的回车符
tmp = tmp.split(',') #根据','来分割字符串,使之成为含有一个个数据的列表
new_data.append(tmp) #new_data的每一行数据就是一个列表
3. 分析数据
我们 拿到new_data后,可以初步分析数据了。比如,可以看它的长度,每一行的数据个数等等。还可以进一步清洗数据。
len_data = len(new_data) #new_data的长度,即原csv表格里的行数
len_element = len(len_data[0]) #new_data第一行数据的长度,即原csv表格里的列数
如果csv的第3列是数字类型的数据,我们想把new_data中对应的数据转换类型,可以如下操作:
for i in new_data:
tmp = i[2] #csv第三列为每行list中的第3个数据,下标为2
new_tmp = int(tmp) #如果此列数据包含小数的,应用new_tmp = float(tmp)
i[2] = new_tmp
如果我们想把第3列中数值大于100的那一行数据提出来,可以再做如下操作:
select_data = []
for i in new_data:
if i[2]>100:
select_data.append(i) #这是复制了符合条件的整个行的数据到新的list里
后记:
为了更方便地处理数据,我们可以把select_data转换成numpy array格式。
import numpy as np
select_data1 = np.array(select_data)
select_data1.shape
#select_data1.shape会得到一个元祖,如(100, 20),其中100为行数,20为列数
更多学习资料,请关注下面的公众号:不定期分享
- 深度学习网络总结
- 机器学习算法及其应用场景
- 算法与数据结构(leetcode 题解)
- cuda编程与并行优化
- 其他读书分享如:《战国策》,《智囊全集》
- 宇宙常识科普与星座辨别
- 等等