Python中对csv文件的创建、读取及修改操作怎样实现
Admin 2022-09-13 群英技术资讯 908 次浏览
今天小编跟大家讲解下有关“Python中对csv文件的创建、读取及修改操作怎样实现”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。代码如下:
import csv
headers = ['学号','姓名','分数']
rows = [('202001','张三','98'),
('202002','李四','95'),
('202003','王五','92')]
with open('score.csv','w',encoding='utf8',newline='') as f :
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(rows)
会在相同路径下生成一个score.csv文件
VScode中打开如下:

用excel打开如下:

可以发现,逗号','在csv文件中代表换格。除此以外,还有'\n'在csv文件中代表换行。
代码如下:
import csv
headers = ['学号','姓名','分数']
rows = [{'学号':'202001','姓名':'张三','分数':'98'},
{'学号':'202002','姓名':'李四','分数':'95'},
{'学号':'202003','姓名':'王五','分数':'92'}]
with open('score.csv','w',encoding='utf8',newline='') as f :
writer = csv.DictWriter(f,headers)
writer.writeheader()
writer.writerows(rows)
会发现结果和方式1相同。
import csv
headers = ['学号,姓名,分数','\n']
csv = ['202001,张三,98','\n',
'202002,李四,95','\n',
'202003,王五,92']
with open('score.csv', 'w',encoding='utf8',newline='') as f:
f.writelines(headers) # write() argument must be str, not tuple
f.writelines(csv)
会发现结果和方式1、方式2相同。
综合上述三种方式,csv文件的创建灵活多样,主要依赖于自己创建的原来数据的存放形式,比如方式1、2中的rows和方式3中的csv,以此选择适合的创建csv文件的函数和方式。
实际示例(要灵活使用','、'\n'、append()等):
csv = []
for line in lines:
scores = result[line[0]]
for wav, scores in scores.items():
# csv.append(line[0])
# csv.append(wav)
# csv.append(str(i) for i in scores)
# csv.append('\n')
#csv.append(','.join([wav] + [str(i) for i in scores] + '\n'))
csv.append(line[0] +','+ wav )
for i in scores:
csv.append(','+ str(i))
csv.append('\n')
with open('task3-result.csv', 'w') as f:
f.writelines(csv)
原score.csv文件在excel中打开如下:

代码如下:
import pandas as pd
my_matrix = pd.read_csv('score.csv')#,header=None,index_col=None)
'''
header : int or list of ints, default ‘infer',指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0,
index_col : int or sequence or False, default None,用作行索引的列编号或者列名
'''
print(my_matrix)
print(my_matrix.shape)
此时的输出结果为:

若代码参数改为:
my_matrix = pd.read_csv('score.csv',header=None,index_col=None)
结果如下:

若代码参数改为:
my_matrix = pd.read_csv('score.csv',header=0,index_col=0)
结果如下:

为了方便后续分析,可以将数据类型改为np.array型,代码如下:
import pandas as pd
import numpy as np
my_matrix = pd.read_csv('score.csv')#,header=0,index_col=0)
my_matrix = np.array(my_matrix)
print(my_matrix)
print(my_matrix.shape)
print(my_matrix[0][0])
结果如下:

代码如下:
import csv
#读取csv文件
with open('score.csv', "r",encoding='utf8',newline='') as f:
reader = csv.reader(f)
for row in reader:
print(row)
结果如下:

如果想获取某一列,可以通过指定的列标号来查询,代码如下:
for row in reader:
print(row[0])
可以输出某一指定的列 ,结果如下:

代码如下:
import csv
#读取csv文件
with open('score.csv', "r",encoding='utf8',newline='') as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
结果如下:

如果想获取某一列,可以通过指定的标题来查询,代码如下:
for row in reader: print(row['学号'])
可以输出指定的某一列,结果如下:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Standalone模式是Spark自带的一种集群模式,不同于前面本地模式启动多个进程来模拟集群的环境,Standalone模式是真实地在多个机器之间搭建Spark集群的环境,完全可以利用该模式搭建多机器集群,用于实际的大数据处理。
python中len是什么:Python中len表示的是len()函数,它可以表示各种对象的长度,例如字符串、元祖、列表、字典等。
python编码格式导致csv读取错误问题(csv.reader, pandas.csv_read),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了python 中[0]*2与0*2的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
自己写 Python 也有四五年了,一直是用自己的“强迫症”在维持自己代码的质量。都有去看 Google 的 Python 代码规范,对这几年的工作经验,做个简单的笔记,如果你也在学 Python,准备要学习 Python,希望这篇文章对你有用。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008