python3用pandas DataFrame保存list数据为csv文件

本文介绍了一种利用Python的Pandas库将列表数据转换并保存为CSV文件的方法,详细展示了数据格式及环境配置,包括数据示例、代码实现步骤及最终结果展示。

记录一下保存list数据为csv文件的方法。

数据格式

data = [ [url,title,click_number,html_content,crawl_time], … ]

http://finance.eastmoney.com/yaowen.html,要闻,,,2019-07-28 12:54:30
http://finance.eastmoney.com/a/ccjdd.html,财经导读,,,2019-07-28 12:54:30
http://finance.eastmoney.com/a/ccjxw.html,产经资讯,,,2019-07-28 12:54:31
http://finance.eastmoney.com/yaowen_cgnjj.html,国内经济,,,2019-07-28 12:54:31
http://finance.eastmoney.com/yaowen_cgjjj.html,国际经济,,,2019-07-28 12:54:31
http://finance.eastmoney.com/a/czqyw.html,证券要闻,,,2019-07-28 12:54:31
http://finance.eastmoney.com/company.html,上市公司,,,2019-07-28 12:54:31
http://finance.eastmoney.com/a/czsdc.html,纵深调查,,,2019-07-28 12:54:31
http://finance.eastmoney.com/a/crdsm.html,热点扫描,,,2019-07-28 12:54:31
http://finance.eastmoney.com/pinglun_cjjsp.html,经济时评,,,2019-07-28 12:54:32
http://finance.eastmoney.com/pinglun_ccyts.html,产业透视,,,2019-07-28 12:54:32
http://finance.eastmoney.com/pinglun_csygc.html,商业观察,,,2019-07-28 12:54:32
http://finance.eastmoney.com/pinglun_cgspl.html,股市评论,,,2019-07-28 12:54:32
http://finance.eastmoney.com/a/201907281190069120.html,人民日报钟声:故技重演不得人心,145927,,2019-07-28 12:55:03
http://finance.eastmoney.com/a/201907281190068761.html,二季度小微贷款余额同比增22.5%,4013,,2019-07-28 12:55:04
http://finance.eastmoney.com/a/201907271190034954.html,805份年度财报大抽查证监会揪“猫腻”,37365,,2019-07-28 12:55:05
http://finance.eastmoney.com/a/201907281190069235.html,29家企业IPO遭中止(附名单),204087,,2019-07-28 12:55:06

环境

  • Ubuntu16.04
  • pandas
    pip install pandas

方法

import pandas as pd

data = [ ['http://finance.eastmoney.com/yaowen.html', '要闻', '', '', '2019-07-28 12:54:30'],  
			... ]

#保存数据
columns = ['url', 'title', 'click_number', 'html_content', 'crawl_time']
df = pd.DataFrame(columns = columns, data = data)
df.to_csv('data.csv', encoding='utf-8')
print('data_len:', len(data))

结果

查看前10行: head -10 ‘data.csv’

,url,title,click_number,html_content,crawl_time
0,http://finance.eastmoney.com/yaowen.html,要闻,,,2019-07-28 12:54:30
1,http://finance.eastmoney.com/a/ccjdd.html,财经导读,,,2019-07-28 12:54:30
2,http://finance.eastmoney.com/a/ccjxw.html,产经资讯,,,2019-07-28 12:54:31
3,http://finance.eastmoney.com/yaowen_cgnjj.html,国内经济,,,2019-07-28 12:54:31
4,http://finance.eastmoney.com/yaowen_cgjjj.html,国际经济,,,2019-07-28 12:54:31
5,http://finance.eastmoney.com/a/czqyw.html,证券要闻,,,2019-07-28 12:54:31
6,http://finance.eastmoney.com/company.html,上市公司,,,2019-07-28 12:54:31
7,http://finance.eastmoney.com/a/czsdc.html,纵深调查,,,2019-07-28 12:54:31
8,http://finance.eastmoney.com/a/crdsm.html,热点扫描,,,2019-07-28 12:54:31
9,http://finance.eastmoney.com/pinglun_cjjsp.html,经济时评,,,2019-07-28 12:54:32

<think>我们正在讨论如何使用PythonDataFrame导出为CSV文件。根据引用,特别是引用[1]和[3],我们知道使用pandas库的`to_csv`方法是主要方式。引用[2]也提到了将列表转换为DataFrame再导出为CSV的方法。因此,我们需要介绍以下步骤:1.导入pandas库2.创建一个DataFrame(可以是直接创建,也可以从其他数据结构转换而来) 3.使用`to_csv`方法将DataFrame保存CSV文件同时,引用[3]提到性能问题,对于大型DataFrame,我们可以通过一些参数设置来提高导出速度。具体步骤:-导入pandas-创建DataFrame(示例数据) -使用df.to_csv()保存,并介绍常用参数(如文件路径、索引、编码、分隔符等) 另外,注意引用[1]中提到的示例,以及引用[2]中如何将列表转为DataFrame。 我们还需要注意中文字符的编码问题(通常使用utf-8,但有时需要指定gbk)。最后,生成相关问题。</think>### PythonDataFrame 导出为 CSV 文件的方法 使用 Pandas 库的 `to_csv()` 方法是导出 DataFrameCSV 文件的最常用方式,以下是详细步骤和优化技巧: #### 基础方法 ```python import pandas as pd # 创建示例 DataFrame data = {&#39;姓名&#39;: [&#39;张三&#39;, &#39;李四&#39;], &#39;年龄&#39;: [25, 30], &#39;身高&#39;: [180, 175]} df = pd.DataFrame(data) # 导出到 CSV(默认参数) df.to_csv(&#39;basic_data.csv&#39;) # 默认保存到当前目录 ``` #### 关键参数详解 1. **路径与文件名** ```python df.to_csv(&#39;C:/data/output.csv&#39;) # 指定完整路径 ``` 2. **编码设置**(处理中文必备) ```python df.to_csv(&#39;data.csv&#39;, encoding=&#39;utf-8&#39;) # 推荐UTF-8 # df.to_csv(&#39;data.csv&#39;, encoding=&#39;gbk&#39;) # 中文系统兼容 ``` 3. **索引控制** ```python df.to_csv(&#39;no_index.csv&#39;, index=False) # 不保存行索引[^1] ``` 4. **表头处理** ```python df.to_csv(&#39;no_header.csv&#39;, header=False) # 不保存列名 ``` #### 高级用法 1. **自定义分隔符** ```python df.to_csv(&#39;tab_separated.csv&#39;, sep=&#39;\t&#39;) # 制表符分隔[^2] ``` 2. **选择导出列** ```python df.to_csv(&#39;selected_columns.csv&#39;, columns=[&#39;姓名&#39;, &#39;年龄&#39;]) ``` 3. **空值处理** ```python df.to_csv(&#39;na_filled.csv&#39;, na_rep=&#39;NULL&#39;) # 替换空值为NULL ``` #### 性能优化(大数据量) ```python # 分块写入(适合百万级数据) for i, chunk in enumerate(pd.read_csv(&#39;big_data.csv&#39;, chunksize=10000)): chunk.to_csv(f&#39;chunk_{i}.csv&#39;, index=False) # 禁用索引和类型推断加速 df.to_csv(&#39;optimized.csv&#39;, index=False, infer_datetime_format=False)[^3] ``` #### 其他格式转换 ```python # 列表直接转CSV(无需显式创建DataFrame) data_list = [[&#39;张三&#39;, 25], [&#39;李四&#39;, 30]] pd.DataFrame(data_list, columns=[&#39;姓名&#39;,&#39;年龄&#39;]).to_csv(&#39;from_list.csv&#39;) ``` > **注意事项**: > 1. 路径使用正斜杠 `/` 避免转义问题 > 2. 中文环境推荐 `encoding=&#39;utf_8_sig&#39;` 解决Excel乱码 > 3. 大数据导出时监控内存使用,避免溢出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

szZack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值