事情是这样的:作为大数据专业学生,有一天老师突然给出了2个多G的csv文件。没做具体任务要求,算是拿着玩。
第一个问题:各种常用文档编辑器都打不开这么大的文件
解决:使用Emeditor,支持文本分段打开,我愿称之为绝活。
第二个问题:对于数据实现简单清洗
描述:老师给出的数据集与交通有关,于是乎其中少不了一个记录车辆速度的字段,虽然不知道单位,但我决定把速度>300的数据分离出来。
解决:在学长的指引下,用了十行python代码解决。我愿称之为最强。
具体步骤:使用Spyder,自带各种库。
import pandas as pd #导入pandas库,这是我们此次行动的主C import numpy as np # file_name = './gps.csv' # Data = pd.read_csv(file_name, encoding='utf-8', sep='\t', # names=range(8),dtype=str) file_name = 'new.csv' #数据集与python程序在同一文件下,故使用相对路径 DataDF = pd.read_csv(file_name, names=range(7) ,header=None ,sep='\t',encoding='utf-8') #数据集没有列名,分隔符为制表符 DataDF.columns = ['ID', 'Tim','lgd','ltd','dir','spe','f']#添加列名 pd.set_option('display.max_rows', 10)#设置打印行数 #pd.set_option('display.max_columns', None) np.set_printoptions(threshold=1e6)#设置输出的全部内容为1e6条,之后的省略 #DataDF.dtypes查看数据类型 #DataDF.shape查看多少行多少列 #DataDF.isnull().sum().sort_values(ascending=False)查找缺失数据 #DataDF.head()抽出一定数据查看 #DataDF.info() 数据类型 #print(DataDF) #print(DataDF.info)() #print(DataDF.shape) #subDataDF1=DataDF["spe"]切片投影 querySer=DataDF.loc[:,'spe']>200 #应用查询条件 print('删除异常值前:',DataDF.shape) DataDF=DataDF.loc[querySer,:] print('删除异常值后:',DataDF.shape) #DataDF.to_csv('gps-ugly.csv')