python文件读写常见问题汇总

2023-12-21 16:08:08

1. 多文件合并

1.1 空文件导致合并后数据存在问题

365个文件中,有10多个文件存在问题,其第一个字段名字为空,而其它文件第一个字段为’time’
在这里插入图片描述
也存在部分文件,其内容为空,
在这里插入图片描述
当wsp115和wd_115-A_Avg为空时,对其进行格式转换并不好使,例如下面的操作。

data_demo[collist[1:]] = data_demo[collist[1:]].apply(pd.to_numeric, errors='coerce')

因为一个他们合并后,数据格式为object,无法进行基于float类型数据的计算。

找到没有被转为float的列

要首先找到在尝试将某列数据转换为浮点数 (float) 后仍然包含非数值(如字符串)的行,你可以按照以下步骤进行:

  1. 标记无法转换的值:使用 Pandas 的 applymap 函数结合一个自定义函数来检查每个单元格是否可以成功转换为浮点数。这个函数应当尝试转换,并在转换失败时返回某种标记(如 False)。

  2. 找出包含标记的行:接着,你可以查找那些包含标记(False)的行。这些行就是含有无法转换为浮点数的数据。

下面是一个实现此功能的示例代码:

import pandas as pd

# 假设df是你的DataFrame,'column_name'是你要检查的列名
def is_convertible_to_float(val):
    try:
        float(val)
        return True
    except ValueError:
        return False

# 应用函数检查每个单元格
df['is_convertible'] = df['column_name'].apply(is_convertible_to_float)

# 找出不可转换为float的行
invalid_rows = df[df['is_convertible'] == False]

在这个示例中,我定义了一个 is_convertible_to_float 函数,它尝试将值转换为浮点数,并在失败时返回 False。然后,我使用 apply 方法应用这个函数到你指定的列,并创建一个新的列 is_convertible 来标记每行是否可转换。最后,我找出了所有 is_convertibleFalse 的行。

这种方法能帮你确定哪些行包含无法转换为浮点数的值。如果您有更具体的数据结构或其他需求,请告知以便提供更准确的帮助。

文章来源:https://blog.csdn.net/weixin_46713695/article/details/135128665
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。