用pandas读取csv文件出现问题

本文探讨了使用pandas库在Python中读取CSV文件时遇到的错误,并通过更改engine参数解决了问题。此外,还介绍了如何正确显示DataFrame的所有列,包括将文件名改为英文格式。

读取csv文件

first = pd.read_csv(r'C:\Users\lenovo\Desktop\广州.csv',encoding="utf-8")
second = pd.read_excel(r'C:\Users\lenovo\Desktop\网点规则调整申请表_20181219_紧急需求.xlsx')
# first = first[['']]
print(first.columns)

结果:

D:\Anaconda_chengxuwenjian\python.exe E:/pycharm建立的Python_Project/用python进行数据分析/修改进行检查.py
Traceback (most recent call last):
  File "E:/pycharm建立的Python_Project/用python进行数据分析/修改进行检查.py", line 8, in <module>
    first = pd.read_csv(r'C:\Users\lenovo\Desktop\广州.csv',encoding="utf-8")
  File "D:\Anaconda_chengxuwenjian\lib\site-packages\pandas\io\parsers.py", line 678, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "D:\Anaconda_chengxuwenjian\lib\site-packages\pandas\io\parsers.py", line 440, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "D:\Anaconda_chengxuwenjian\lib\site-packages\pandas\io\parsers.py", line 787, in __init__
    self._make_engine(self.engine)
  File "D:\Anaconda_chengxuwenjian\lib\site-packages\pandas\io\parsers.py", line 1014, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "D:\Anaconda_chengxuwenjian\lib\site-packages\pandas\io\parsers.py", line 1708, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas\_libs\parsers.pyx", line 384, in pandas._libs.parsers.TextReader.__cinit__
  File "pandas\_libs\parsers.pyx", line 697, in pandas._libs.parsers.TextReader._setup_parser_source
OSError: Initializing from file failed

 

有看了下 pandas.read_csv 的官方文档,可能与 

engine : {‘c’, ‘python’}, optional

Parser engine to use. The C engine is faster while the python engine is currently more feature-complete.

将engine 改为python

first = pd.read_csv(r'C:\Users\lenovo\Desktop\广州.csv',engine='python',encoding="utf-8")
second = pd.read_excel(r'C:\Users\lenovo\Desktop\网点规则调整申请表_20181219_紧急需求.xlsx')
# first = first[['']]
print(first.columns)

结果:

D:\Anaconda_chengxuwenjian\python.exe E:/pycharm建立的Python_Project/用python进行数据分析/修改进行检查.py
Index(['网点ID'], dtype='object')

Process finished with exit code 0
 

Dataframe的columns总是显示第一个,后面的都显示不出来,把csv的文件名改成英文格式,同时把engine改成默认的c

first = pd.read_csv(r'C:\Users\lenovo\Desktop\guangzhou.csv',engine ='c',encoding="utf-8")
second = pd.read_excel(r'C:\Users\lenovo\Desktop\网点规则调整申请表_20181219_紧急需求.xlsx')
# first = first[['']]
print(first.columns)

结果:

D:\Anaconda_chengxuwenjian\python.exe E:/pycharm建立的Python_Project/用python进行数据分析/修改进行检查.py
Index(['网点ID', '网点名称', '城市', '区县', '网点地址', '设备数量', '投件规则名', '小箱折后价', '中箱折后价',
       '大箱折后价', '取件规则名', '免费时长', '基础时长', '基础费用', '超期时长', '超期费用', '代存服务费折扣',
       '代存服务费封顶', '封顶费', '周末节假日计时', '投件当日夜间计时', '短信模板名', '开箱码迁移是否开启',
       '投件补发短信时间', '自动取件短信模板', '补发短信模板', '预约规则名', '大箱实际预约价', '中箱实际预约价',
       '小箱实际预约价', '滞留件规则', '自动补发短信模板'],
      dtype='object')

Process finished with exit code 0

正常显示 

### 如何使用 Pandas 在 Python 中读取 CSV 文件 在 Python 中,Pandas 是一个强大的数据分析库,提供了简单易用的接口来处理 CSV 文件。以下是一个详细的说明和示例代码。 要读取 CSV 文件,可以使用 `pandas.read_csv()` 方法[^1]。此方法允许指定文件路径、编码方式以及其他参数以适应不同的文件格式需求。例如,如果文件包含中文字符,可能需要设置适当的编码格式(如 `gbk` 或 `utf-8`)[^1]。 以下是使用 Pandas 读取 CSV 文件的基本示例代码: ```python import pandas as pd # 指定文件路径和编码方式 df = pd.read_csv('property-data.csv', encoding="gbk") # 使用 gbk 编码处理中文字符 print(df.to_string()) # 打印整个 DataFrame 的内容 ``` 在上述代码中: - `'property-data.csv'` 是目标 CSV 文件的路径。 - `encoding="gbk"` 指定了文件的编码格式,适用于包含中文字符的文件[^1]。 - `df.to_string()` 将整个 DataFrame 转换为字符串并打印,确保输出所有行和列。 此外,还可以通过传递自定义列名来读取 CSV 文件。例如: ```python import pandas as pd # 自定义列名 df = pd.read_csv('data.csv', names=['ts_code', 'symbol', 'name', 'area', 'industry', 'list_date'], index_col=None) print(df.head()) # 显示前几行数据 ``` 在此代码中: - `names` 参数用于定义自定义列名[^4]。 - `index_col=None` 表示不将任何列设置为索引[^4]。 ### 高级功能 如果需要逐行读取大型 CSV 文件,可以结合 `chunksize` 参数分块读取,避免内存不足的问题[^2]: ```python import pandas as pd # 分块读取 CSV 文件 chunk_size = 1000 # 每次读取的行数 chunks = [] for chunk in pd.read_csv('large_file.csv', chunksize=chunk_size): chunks.append(chunk) # 合并所有分块 df = pd.concat(chunks, ignore_index=True) print(df.head()) ``` 以上代码展示了如何通过分块读取大型 CSV 文件,并将其合并为一个完整的 DataFrame[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值