用Python处理CSV文件
根据下表数据,编写程序

将表格的数据存在txt文件中,内容如下:
name gender birthday start_work income tel email other
赵一 男 1989/8/10 8/9/2012 15000 13611011234 zhaoyi@qq.com {教育:本科,专业:电子商务,爱好:运动}
王二 男 1990/10/2 6/3/2014 12500 13500012234 wanger@163.com {教育:大专,专业:汽修,爱好:}
张三 女 1987/3/12 8/1/2009 18500 13515273330 zhangsan@qq.com {教育:本科,专业:数学,爱好:打篮球}
李四 女 1991/8/16 4/6/2014 13000 13923673388 lisi@mail.com {教育:硕士,专业:统计学,爱好:唱歌}
刘五 女 1992/5/24 10/8/2014 8500 17823117890 liuwu@qq.com {教育:本科,专业:美术,爱好:}
雷六 女 1986/12/10 10/3/2010 15000 13712345612 leiliu@126.com {教育:硕士,专业:化学,爱好:钓鱼}
贾七 男 1993/4/10 1/8/2015 9000 13178734511 jiaqi@136.com {教育:硕士,专业:物理,爱好:健身}
吴八 女 1988/7/19 12/10/2014 13500 17822335317 wuba@qq.com {教育:本科,专业:政治学,爱好:读书}
(1)第一问
1 import csv 2 3 with open('student.csv','w',newline='') as file: 4 writer=csv.writer(file,dialect='excel') #dialect:生成excel所兼容的csv文件 5 f=open('test.txt',mode='r',encoding='utf-8') #打开txt文件 6 lines=f.readlines() 7 for line in lines: 8 line_list=line.strip('\n').split('\t')#用\t作为间隔符,去掉元素前后的空格,注意是先stip 9 writer.writerow(line_list) 10 f.close()#括号别忘了
(2)第二问
1 import pandas as pd 2 3 df=pd.read_csv('student.csv',sep=',',encoding='gbk') #读取文件,分隔符是",",注意这里用“gbk"解码,不然会报错 4 print(df) 5 df['birthday']=pd.to_datetime(df['birthday']) 6 df['start_work']=pd.to_datetime(df['start_work']) 7 print(df['birthday']) 8 print(df['start_work'])
(3)第三问
import pandas as pd df=pd.read_csv('student.csv',sep=',',encoding='gbk') df['income']=df['income'].astype('int') #astype进行数据类型的转换 print(df['income'])
(4)第四问
1 import pandas as pd 2 import re 3 4 df=pd.read_csv('student.csv',sep=',',encoding='gbk') 5 df1=df['other'].values.tolist() #“.values”返回该列的值,不带索引和列名 6 for item in df1: 7 s=re.findall("教育:(.*?),",item)[0] 8 print(s)
(5)第五问
1 import pandas as pd 2 from pandas import DataFrame 3 4 df=pd.read_csv('student.csv',sep=',',encoding='gbk') 5 df['tel']=df['tel'].astype('str') #将tel列数据类型转化为字符串类型 6 df1=df['tel'].tolist()#将该列转化为列表 7 list=[] 8 for item in df1: 9 list.append(item[:3]+'****'+item[7:]) 10 df2=DataFrame(list) #DataFrame的强大之处!!! 11 df['tel']=df2 12 print(df['tel'])
(6)第六问
1 import pandas as pd 2 3 file=open("student.json","w") 4 df=pd.read_csv('student.csv',sep=',',encoding='gbk') 5 lre=df.values.tolist() #将所有值转化为列表,去掉表头和索引 6 for t in lre: 7 resu="" 8 for i in t: 9 resu=resu+str(i)+" " 10 resu=resu.rstrip() 11 print(resu) 12 file.write(resu+"\n") 13 file.close()

浙公网安备 33010602011771号