① python怎么将数据存到csv文件
有两种途径:
1、csv文件本质上也是文件文件,可以按照文件文件来进行读写操作
2、python自带csv模块,可以import csv 来通过csv.write模块来写文件
② python 如何将数据写入某个csv文件的特定位置
#其实csv文件就是用逗号隔开的文本文件,
#所以只要用python中的open函数打开就可以了。
#我把修改后的文件存为b_out.csv了
b_int={}
foriinopen('b.csv').readlines()[1:]:
j=i.split(',')
iflen(j)>2:
b_int[j[0]]=j[4]
a_int=open('a.csv').readlines()
foriinrange(1,len(a_int)):
a_int_=a_int[i].rstrip().split(',')
a_int_[-1]=b_int.get(a_int_[4],'0')
a_int[i]=','.join(a_int_)+' '
open('b_out.csv','w').write(''.join(a_int))
③ 求Python大神指导,一个csv文件,把其中每一列的数据提取出来单独保存为一个csv文件
csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格:
就可以存储为csv文件,文件内容是:
No.,Name,Age,Score
1,mayi,18,99
2,jack,21,89
3,tom,25,95
4,rain,19,80
假设上述csv文件保存为"test.csv"
1.读文件
如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Python自带的csv模块,有两种方法可以实现:
第一种方法使用reader函数,接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容:比如下面的代码可以读取csv的全部内容,以行为单位:
#!/usr/bin/python3
# -*- conding:utf-8 -*-
__author__ = 'mayi'
import csv
#读
with open("test.csv", "r", encoding = "utf-8") as f:
reader = csv.reader(f)
rows = [row for row in reader]
print(rows)
得到:
[['No.', 'Name', 'Age', 'Score'],
['1', 'mayi', '18', '99'],
['2', 'jack', '21', '89'],
['3', 'tom', '25', '95'],
['4', 'rain', '19', '80']]
要提取其中某一列,可以用下面的代码:
#!/usr/bin/python3
# -*- conding:utf-8 -*-
__author__ = 'mayi'
import csv
#读取第二列的内容
with open("test.csv", "r", encoding = "utf-8") as f:
reader = csv.reader(f)
column = [row[1] for row in reader]
print(column)
得到:
['Name', 'mayi', 'jack', 'tom', 'rain']
注意从csv读出的都是str类型。这种方法要事先知道列的序号,比如Name在第2列,而不能根据'Name'这个标题查询。这时可以采用第二种方法:
第二种方法是使用DictReader,和reader函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到DictReader的结构:
# -*- conding:utf-8 -*-
__author__ = 'mayi'
import csv
#读
with open("test.csv", "r", encoding = "utf-8") as f:
reader = csv.DictReader(f)
column = [row for row in reader]
print(column)
得到:
[{'No.': '1', 'Age': '18', 'Score': '99', 'Name': 'mayi'},
{'No.': '2', 'Age': '21', 'Score': '89', 'Name': 'jack'},
{'No.': '3', 'Age': '25', 'Score': '95', 'Name': 'tom'},
{'No.': '4', 'Age': '19', 'Score': '80', 'Name': 'rain'}]
如果我们想用DictReader读取csv的某一列,就可以用列的标题查询:
#!/usr/bin/python3
# -*- conding:utf-8 -*-
__author__ = 'mayi'
import csv
#读取Name列的内容
with open("test.csv", "r", encoding = "utf-8") as f:
reader = csv.DictReader(f)
column = [row['Name'] for row in reader]
print(column)
得到:
['mayi', 'jack', 'tom', 'rain']
2.写文件
读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。
#!/usr/bin/python3
# -*- conding:utf-8 -*-
__author__ = 'mayi'
import csv
#写:追加
row = ['5', 'hanmeimei', '23', '81']
out = open("test.csv", "a", newline = "")
csv_writer = csv.writer(out, dialect = "excel")
csv_writer.writerow(row)
得到:
④ 利用Python如何将数据写到CSV文件中
如果你的数据是列表格式,可以使用一个迭代器,将数据写入文件,同时添加必要的分隔符以构成csv文件
如果数据是字典格式,需要考虑使用换行符或者其他特殊符号来分割每个字典元素(包括键和值)。键和值可以考虑使用和之前不重复的分隔符进行分割。
这样就构成了一个csv文件(csv使用分隔符分割值的文件)
操作方法如下:
1,使用读写追加的方式打开csv文件。
2,找到csv文件的结尾。
3,在结尾使用和之前csv使用的分割相同的格式进行数据添加。
4,关闭文件
⑤ python怎么写入csv文件
import pandas as pd#任意的多组列表a = [1,2,3]
b = [4,5,6]
#字典中的key值即为csv中列名dataframe = pd.DataFrame({'a_name':a,'b_name':b})#将DataFrame存储为csv,index表示是否显示行名,default=Truedataframe.to_csv("test.csv",index=False,sep='')1234567891011
a_name b_name0 1 41 2 52 3 61234
同样pandas也提供简单的读csv方法
import pandas as pddata = pd.read_csv('test.csv')12
会得到一个DataFrame类型的data,不熟悉处理方法可以参考pandas十分钟入门
另一种方法用csv包,一行一行写入
import csv
#python2可以用file替代open
with open("test.csv","w") as csvfile:
writer = csv.writer(csvfile)
#先写入columns_name
writer.writerow(["index","a_name","b_name"])
#写入多行用writerows
writer.writerows([[0,1,3],[1,2,3],[2,3,4]])12345678910
index a_name b_name0 1 31 2 32 3 41234
读取csv文件用reader
import csvwith open("test.csv","r") as csvfile:
reader = csv.reader(csvfile) #这里不需要readlines
for line in reader:
print line
⑥ python3存储数据到csv
我的思路是用pandas处理:
import pandas as pd
希望可以帮到你。
⑦ python怎么样把学生信息管理系统的信息保存到csv中
import csv
# 1. 创建文件对象
filename = 'D:/AAA.csv'
f = open(filename,'w',encoding='utf-8',newline="")
# 2. 构建 csv写入对象
csv_writer = csv.writer(f)
# 3. 写入文件头
csv_writer.writerow(["姓名","年龄","性别"])
# 4. 写入csv文件内容
csv_writer.writerow(["张三",'15','男'])
csv_writer.writerow(["李四",'14','男'])
csv_writer.writerow(["王五",'15','女'])
# 5. 关闭文件
f.close()
print(f"File {filename} was created.")
⑧ python中用to_csv()储存数据为什么只能存储到一条数据
这段循环逻辑有问题, 因为最后的2行代码都在循环体里面,这导致了每次to_csv只导出一条数据。最后程序运行完之后,csv文件里的最终结果只是最后一条数据而已。
而且这段程序过于繁杂了,有很多多余的计算,当数据多的时候会有性能问题。可以用下面的方法, 要更简洁。
#直接把profile(也就是result字段里的内容)放进DataFrame参数里面
#然后在把需要的字段过滤一下,这样就可以1行代码解决你的问题了,当然下面的为了让代码更易读,我分成了3行。
profile=responer.json()(['content']['positionTrsult']['result'])
profileColumns=['positionName','city','ecation','workYear']
f=pd.DataFrame(profile,columns=profileColumns)
#pandas在很多操作的时候,能得到我们想象中的结果,所以多试试,会有很多惊喜的~
然后看你是刚用pandas(我也是刚学习pandas),给你一个建议, 就是涉及到pandas的操作就【尽量】不要用循环,这对以后处理大量数据的时候会产生非常大的性能问题的。我用循环处理10W+的数据的时候等了十分钟都没有得出结果来。。。CPU是8700k,内存32G都不行...
⑨ Python怎么把循环得到的结果按照列依次写入到一个csv文件中
我改了一下你的代码,实测是可以从 a.csv复制到 b.csv中
import csv
def foo():
with open('a.csv', 'r') as f:
reader = csv.DictReader(f)
rows = [row for row in reader]
if not rows:
return
with open('b.csv', mode='w', newline='', errors='ignore') as f2:
for index, row in enumerate(rows):
if index == 0:
f_csv = csv.DictWriter(f2, fieldnames=list(row.keys()))
f_csv.writeheader()
f_csv.writerow(row)
if __name__ == '__main__':
foo()
⑩ Python从指定行将数据写入CSV文件
加个id或时间列进去,打开后排序下就好了