111111111111:将数据集中所有信息异常的行删除。
比如上面的样例中第4行数据只有3个元素,而其他行都有6个元素,所以第4行是信息异常的行,将其删除。
数据集中可能还会存在一些其他异常。
将全部信息处理之后,每行的元素以逗号为分隔符,写入文件`test1`。
import pandas as pd
import numpy as np
import csv
#现将原始数据加一行,目的:将第一行数据可以进行索引
df=pd.read_csv(r'C:\Users\hk\Desktop\Data.csv')#打开原始数据
for i in range(len(df.index)):#删除元素不为6的row
li=df.loc[i][0].split()
if len(li)==6:
df.loc[i][0]=li
else:
df.drop([i],inplace=True)
df.index=range(len(df))#重新整理index
for i in range(len(df)):#100710#删除第三个元素异常的rows
x=df.loc[i][0][2] #并将列表转换为str(',' 连接)
if len(x)<10 and x[0] in '1234567890':
df.drop([i],inplace=True)
else:
df.loc[i][0]=','.join(df.loc[i][0])
df.index=range(len(df))#重新整理index
df.to_csv(r'C:\Users\hk\Desktop\Data1.4.csv',sep=',',quoting=csv.QUOTE_NONE,index=False,header=False)#保存处理的数据
#(index=False,header=False)作用:不写入index,columns
#(,sep=',',quoting=csv.QUOTE_NONE) 作用:去除写入时的双引号
2222222222:统计文件`test1`的数据中所有动作的数目并打印到屏幕,然后将动
作数目对100取整后写入`test2`文件,多余的信息行抛弃。
import pandas as pd
import numpy as np
df=pd.read_csv(r'C:\Users\hk\Desktop\text1\Data1.csv',header=None)
#读取step1的values
num=df[1].value_counts()
#获取 动作 列的value_counts的信息
li=['Movement:','Amount:']
df0=pd.DataFrame(columns=range(6))
for i in num.index:
x=(num[i]//100)*100
f=df[df[1]==i][:x]
df0=df0.append(f)
print(li[0]+i,li[1]+str(x),sep='\t')
#打印将动作数目对100取整后的信息,将取整的前某某行进行整合
df0.to_csv(r'C:\Users\hk\Desktop\test2.csv',header=False,index=False)
#保存整合后的信息,除去行列索引
33333333333:读取文件`test2`的数据,取每行
的后3列元素,以空格为分隔符写入文件`test3`。
import pandas as pd
import numpy as np
df=pd.read_csv(r'C:\Users\hk\Desktop\text2\data2.csv',header=None)
#获取data2的数据
x=df.loc[:][[3,4,5]]
#提出3,4,5列的所有数据
x.to_csv(r'C:\Users\hk\Desktop\text3\data3.csv',header=False,index=False)
#保存数据,去掉行列索引
44444444444:读取文件`test3`的数据,每行数据为一组,每组组内的元素以
空格为分隔符,组与组之间的数据以逗号为分隔符,每20组元素为一行,
import pandas as pd
import numpy as np
df=pd.read_csv(r'C:\Users\hk\Desktop\text3\data3.csv',header=None)
#读入data3数据
import csv
s=''
c=0
dd=pd.DataFrame()
x=df.values
for i in df.values: #每读入二十行append()加入到dd生成新
#的一行,使float变为str,方便操作,
c+=1
st=''
for n in range(3):
if n==2:
st+=str(i[n])
else:
st+=str(i[n])+' '
if c!=20:
s+=st+','
else:
dd=dd.append([s+st])
s=''
c=0
#sep='$',quoting=csv.QUOTE_NONE 作用:消除字符串化带来的双引号
#header=None,index=False 作用: 不写入行列索引
#
dd.to_csv(r'C:\Users\hk\Desktop\text4\data4.csv',header=None,index=False,sep='$',quoting=csv.QUOTE_NONE)