本文是在个人学习实践中总结,如有类似需要,仅供参考。
- 循环获取指定列的单个数据,处理后保存到列表中
import csv
import geohash
jingdu=[]
weidu=[]
Value=[]
def read_csv():
with open("train.csv",'r') as fp:
reader=csv.DictReader(fp)
for x in reader:
# 获取geohashed_end_loc列中的数据并存储到列表中
value=x['geohashed_end_loc'] #geohashed_end_loc为CSV文件其中一个列名
Value.append(value)
#对数据进行处理,并存储到列表中
location1 = geohash.decode(value)
jingdu.append(location1[0])
weidu.append(location1[1])
read_csv()
- 获取指定列的全部数据保存到列表中
import pandas as pd
df = pd.read_csv('工作簿1.csv')
value=df[['姓名', '学院', '学号', '联系方式']] #CSV文件中的列名
# 把series转换成list:方法1 df['a'].values.tolist() 方法2:df['a'].tolist()
a=value['姓名'].values.tolist()
print(a)
- 向CSV中写入数据
import pandas as pd
#字典中的key值即为csv中列名
dataframe = pd.DataFrame({'标题1':jingdu,'标题2':weidu}) #jingdu、weidu为数据列表
#将DataFrame存储为csv,index表示是否显示行名,default=True
dataframe.to_csv("train2.csv",index=True,sep=',')
- 向CSV中追加行
import csv
#对csv文件进行写入 *** 作,mode="w"表示 *** 作模式为只写,如文件不存在则自动创建文件覆盖写入
with open(r"2.csv",mode="w",newline="",encoding="utf8") as cf:
wf=csv.writer(cf)
wf.writerow(["name", "money"]) #写入标题行
data = [['lili','10'],['lili','115'],['lili','20']]
for i in data:
wf.writerow(i)
#末尾追加写入,文件必须已存在
with open(r"2.csv",mode="a",newline="",encoding="utf8") as cfa:
wf = csv.writer(cfa)
data2 = [['lili','10']]
for i in data2:
wf.writerow(i)
- 向CSV中追加列
import pandas as pd
import numpy as np
data = pd.read_csv(r'2.csv') #打开一个csv,得到data对象
data['追加'] = data1 #将data1列表数据插入新列
data.to_csv(r"3.csv",mode = 'a',index =False)
#保存到csv, mode=a,以追加模式写入,hreade表示列名,默认为true,index表示行名,默认为true,再次写入不需要行名
- CSV数据集成
import pandas as pd
df = pd.read_csv('工作簿1.csv') #包含列名: '姓名', '学院', '学号', '联系方式', '贫困生'
dd = pd.read_csv('2.csv') #包含列名: '姓名', '值班节数'
data = pd.merge( dd, df,on=['姓名'], how='left') # pandas csv表左连接 dd df 谁在前以谁为准,“姓名”为公共列名
data = data[['姓名', '学院', '学号', '联系方式', '贫困生', '值班节数']]
# pandas写入表格数据
data.to_csv(r'data2.csv', encoding='utf-8-sig')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)