python3 读写csv

一、pandas写入csv

    将dict写入csv文件

import pandas as pd

list1 = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
pd.DataFrame(list1).to_csv('test.csv')

二、pandas读取csv

import pandas as pd
import numpy as np

df = pd.read_csv('test.csv')

# 输出全部的列名
print(df.columns)
print(df.columns.tolist())

# 根据列名,输出该列的所有数据
print(df["name"][0])
print(df["name"].tolist())

三、csv写入csv

import csv

csvFile = open("test.csv", "w+", encoding="utf-8")
writer = csv.writer(csvFile)

data_list = [["name", "age"]]
data_list.append(["张三", "1"])
data_list.append(["李四", "2"])

file_name = "test.csv"
with open(file_name, "w") as csvfile:
    writer = csv.writer(csvfile)
    writer.writerows(data_list)

四、csv读取csv

import csv

# 读取csv至字典
csvFile = open("test.csv", "r")
reader = csv.reader(csvFile)

# 建立空字典
for item in reader:
    # 忽略第一行
    if reader.line_num == 1:
        continue
    print(item)

csvFile.close()

五、处理杂乱的json,将其写入csv

import re
import json
import pandas as pd

path_in = "live.json"
path_out = "merge.csv"

data_list = []
f = open(path_in, "r", encoding="utf-8")
num = 0
for line in f.readlines():
    line = line.replace("\n", "")
    line = line.replace("'", '"')

    regex = re.compile(r'\\(?![/u"])')
    line = regex.sub(r"\\\\", line)

    line = line.replace("\": \"", "@#@1")
    line = line.replace("\", \"", "@#@2")
    line = line.replace("\": ", "@#@3")
    line = line.replace(", \"", "@#@4")
    line = line[2:-2]

    line = line.replace("\"", "*#*")
    line = line.replace("\'", "#*#")
    line = line.replace("@#@1", "\": \"")
    line = line.replace("@#@2", "\", \"")
    line = line.replace("@#@3", "\": ")
    line = line.replace("@#@4", ", \"")
    line = "{\""+line+"\"}"

    num += 1
    print(num, len(line), line)
    data_json = json.loads(line)
    data_list.append(data_json)
f.close()

df = pd.DataFrame(data_list).to_csv(path_out)
print(df)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值