Python_pandas:读取CSV文件、查找指定列和单元格、解决NaN问题

本文介绍了为什么在数据分析中不推荐使用csv库,推荐使用pandas读取CSV文件的原因,并展示了如何使用pandas进行CSV操作,包括读取文件、查找指定列和单元格以及解决NaN问题。通过实例解释了pandas的便利性和处理缺失值的策略。

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

目录

为什么不推荐用csv库?

为什么推荐使用pandas读取csv文件?

开始pandas操作csv文件之旅:

0.csv文件预览

1.读取csv文件

2.查找指定列及指定单元格

2.1指定列:通过索引指定列名为hour的列

2.2指定单元格:1001A列23时的AQI值

3.解决遇到的"NAN"


为什么不推荐用csv库?

本段说说使用csv库常见的问题:

  1. csv.DictWriter():该函数返回的结果遍历一次之后,再次遍历返回的结果是空列表。
  2. csv.reader():返回的结果是结构体,需要for循环才能调用,不能像list那样直接选取特定单元格。
  3. 通过列名来查找指定列的操作麻烦。
    #选择特定的单元格
    
    reader = csv.reader(filenanme)
    for row in reader:
        print(row[0])

以上问题如何解决:

  1. 每次循环遍历完,重新使用csv.DictWriter()函数读取文件。
  2. 继续熟练使用。
  3. 转身拥抱pandas。

为什么推荐使用pandas读取csv文件?

  1. 方便,有专门支持读取csv文件的pd.read_csv()函数。
  2. 将csv转换成二维列表形式
  3. 支持通过列名查找特定列。
  4. 相比csv库,事半功倍。

### Anaconda 中 Pandas `read_csv` 的文件路径配置 在使用 Anaconda Pandas 进行 CSV 文件读取时,常见的问题是由于路径设置不正确而导致无法成功加载数据。以下是关于如何正确配置文件路径的方法: #### 路径类型的分类 Pandas 支持多种路径类型来指定文件位置,包括绝对路径相对路径[^1]。 - **绝对路径**:指明从根目录到目标文件的具体路径。例如,在 Windows 系统下可以表示为 `'C:\\Users\\username\\data.csv'` 或者 Linux/MacOS 下表示为 `'/home/username/data.csv'`。 - **相对路径**:相对于当前工作目录的位置。如果 Python 脚本所在的目录与 CSV 文件相同,则可以直接提供文件名称作为路径参数;否则需给出基于脚本所在位置的子目录结构描述。 #### 获取当前工作目录 为了更好地理解并调试路径问题,可以通过以下命令查看当前的工作目录: ```python import os print(os.getcwd()) ``` 这有助于确认是否需要调整所提供的路径字符串以匹配实际存储情况。 #### 使用 `os.path.join()` 构建跨平台兼容路径 为了避免不同操作系统间斜杠方向差异带来的错误,推荐利用标准库中的工具构建路径: ```python import os file_path = os.path.join('path', 'to', 'your_file.csv') df = pd.read_csv(file_path) ``` 上述代码片段展示了怎样安全地组合各部分形成最终地址而不必担心操作系统的区别[^2]。 #### 处理特殊字符编码及缺失值替代方案 当遇到含有非ASCII码或者存在大量空白单元格的数据集时,可能还需要额外设定一些选项来优化导入过程。比如定义特定字段应视为字符串型态(`dtype=str`)以及用自定标记取代默认NaN表现形式等措施都可以提高程序健壮性数据分析效率[^3]: ```python df = pd.read_csv( file_path, encoding='utf-8', na_values=["NULL"], keep_default_na=False, dtype={"column_name": str} ) ``` 以上就是针对您提到的问题所整理的相关解答内容,请根据实际情况选取适合的方式解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值