写在前面:

本文是在个人学习实践中总结,如有类似需要,仅供参考。


  • 循环获取指定列的单个数据,处理后保存到列表中

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')

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐