csv中的null在pandas和os中的存储内容

本文介绍了使用Python的pandas库读取并处理CSV文件的方法,包括如何筛选非空值,对比不同数据处理方式的结果,以及利用os模块直接读取文件内容。

数据为下面的csv文件

通过padas和os读取该文件,代码如下

import pandas as pd
dir = 'shiyan.csv'
df = pd.read_csv(dir)
data1 = df[df.b.notnull()].loc[:,:]
print('data1:')
print(data1)
data2 = df[df.b.astype(str) != 'nan'].loc[:,:]
print('data2:')
print(data2)
print('df[df.notnull()]:')
print(df[df.notnull()])
print('df.notnull:')
print(df.notnull())
print('os.read:')
with open(dir, 'r') as f:
    for line in f.readlines():
        print(line, end='')

运行结果如下图:

可以看看结果,记住结论。其中notnull()和notna()是等价的,那么isnull()和isna()应该也是等价的

补充一种情况,如下所示

data3 = df[df.b.astype(str) != 'null'].loc[:, :]
print('data3:')
print(data3)

### 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、付费专栏及课程。

余额充值