python写入csv文件的几种方法总结

本文介绍了使用Python的Pandas库进行CSV文件的读写操作,包括如何创建DataFrame,将其保存为CSV,以及如何从CSV文件加载数据。此外,还提供了使用csv模块逐行写入CSV文件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最常用的一种方法,利用pandas包

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=True
dataframe.to_csv("test.csv",index=False,sep=',')

   a_name  b_name
0       1       4
1       2       5
2       3       6

同样pandas也提供简单的读csv方法

import pandas as pd
data = pd.read_csv('test.csv')

会得到一个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]])

index   a_name  b_name
0       1       3
1       2       3
2       3       4

读取csv文件用reader

import csv
with open("test.csv","r") as csvfile:
    reader = csv.reader(csvfile)
    #这里不需要readlines
    for line in reader:
        print line
### 将Python字典数据写入CSV文件方法 以下是几种常见的方法,可以将Python字典数据写入CSV文件: #### 方法一:使用 `csv` 模块 通过 Python 的标准库 `csv` 可以轻松完成此任务。下面是一个完整的代码示例[^1]。 ```python import csv # 定义一个字典列表作为示例数据 data = [ {"name": "Alice", "age": 25, "city": "New York"}, {"name": "Bob", "age": 30, "city": "Los Angeles"}, {"name": "Charlie", "age": 35, "city": "Chicago"} ] # 打开 CSV 文件写入数据 with open('output.csv', 'w', newline='', encoding='utf-8') as csvfile: fieldnames = ['name', 'age', 'city'] # 字典键作为字段名 writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() # 写入表头 writer.writerows(data) # 写入多行数据 ``` 这种方法适用于简单的字典结构,并能很好地控制输出格式[^1]。 --- #### 方法二:使用 `pandas` 库 如果需要更灵活的操作或者处理复杂的数据集,推荐使用第三方库 `pandas` 来简化流程[^2]。 ```python import pandas as pd # 创建字典形式的数据 data = { "name": ["Alice", "Bob", "Charlie"], "age": [25, 30, 35], "city": ["New York", "Los Angeles", "Chicago"] } # 转换为 DataFrame 并保存到 CSV 文件 df = pd.DataFrame(data) df.to_csv("output_pandas.csv", index=False, sep=',') ``` 该方法的优势在于支持多种参数配置(如分隔符、编码方式),适合大规模数据分析场景[^2]。 --- #### 方法三:逐行列出并手动拼接字符串 对于某些特定需求,也可以不依赖任何外部工具而直接构建 CSV 数据[^4]。 ```python # 原始字典数据 data = [ {"name": "Alice", "age": 25, "city": "New York"}, {"name": "Bob", "age": 30, "city": "Los Angeles"}, {"name": "Charlie", "age": 35, "city": "Chicago"} ] # 自定义函数实现简单写入逻辑 def write_dict_to_csv(filename, data): keys = data[0].keys() with open(filename, 'w', newline='', encoding='utf-8') as f: f.write(','.join(keys) + '\n') # 表头 for row in data: values = map(str, (row[key] for key in keys)) f.write(','.join(values) + '\n') write_dict_to_csv('manual_output.csv', data) ``` 这种方式虽然较为繁琐,但在特殊情况下可能更加可控[^4]。 --- ### 总结 以上三种方法各有优劣: - **`csv` 模块** 是基础的选择,易于理解和维护; - **`pandas`** 提供强大的功能扩展,尤其适合复杂的表格操作; - **自定义实现** 则允许完全掌控细节,但开发成本较高。 无论采用哪种方案,都应考虑实际应用场景以及性能要求等因素做出佳决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值