用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()

 

  

posted @ 2022-05-06 16:01  芬芬的笔迹*本  阅读(186)  评论(0)    收藏  举报