用PYTHON删除指定符号后为空值和当行是空值的方法

with open(r'E:\2023-5-117.txt', 'r') as file:
    lines = file.readlines()

new_lines = []
# 过滤包含特定字符串的行
lines = [line for line in lines if 'R X D :' not in line]       #删除带R X D :行
'''
使用了列表推导式,可以将每一行与 'R X D :' 这个字符串进行比较。如果当前行中不包含 'R X D :' 这个字符串,那么将该行添加到新列表 new_lines1 中;否则就不添加该行。
line:代表当前迭代的行变量名字;
for line in lines:for 循环中的 line 变量代表了从 lines 中依次取出每一行的值;
if 'R X D :' not in line:在 for 循环的基础上,使用 if 语句对每一行字符串的值进行判断。如果当前行包含 'R X D :' 字符串,那么舍弃这行;否则将当前行添加到新列表 new_lines1 中。
最终, new_lines1 将只包含那些不包含 'R X D :' 这个字符串的文件行。
'''
# 删除空行
lines = [line for line in lines if line.strip()]    #删除空行
'''
使用了列表推导式,可以将每一行与 .strip() 方法进行比较。如果调用 strip() 方法后当前行不为空字符串,那么将该行添加到新列表 lines 中;否则就不添加该行。
line:代表当前迭代的行变量名字;
for line in lines:for 循环中的 line 变量代表了从 lines 中依次取出每一行的值;
if line.strip():在 for 循环的基础上,使用 if 语句对每一行字符串的值进行判断。如果调用 strip() 方法后当前行不为空字符串,那么将当前行添加到新列表 lines 中;否则舍去该行。
最终, lines 将只包含那些不为空字符串的文件行。这个操作也可以去掉行末尾的空白字符。
'''

for line in lines:
    if not line.strip().endswith('):'):
        # 如果该行不以 '):' 结尾,则保留该行
        new_lines.append(line)
    elif not line.strip().endswith('): '):
        # 如果该行以 '):' 结尾但后面是空白,则删除该行
        continue
    else:
        # 否则保留该行
        new_lines.append(line)

'''
对于每一行 line:
如果当前行不是以 '): ' 结尾的,那么将该行添加到新列表 new_lines 中;
否则,如果当前行是以 '): ' 结尾但 '):' 后面有多余空格的,那么舍弃该行,直接进入下一轮循环;
否则,如果当前行是以 ' ):' 结尾但 ' ):' 前面有多余的空格,那么舍弃该行,直接进入下一轮循环;
如果以上条件都不成立,说明当前行是以 '): ' 结尾并且 ' ):' 不存在多余空格的有效行,将该行添加到新列表 new_lines 中。
最终, new_lines 中包含满足条件的文件行。
'''

with open(r'E:\2023-5-117.txt', 'w') as file:
    file.writelines(new_lines)

处理前数据状态
在这里插入图片描述
处理后数据状态
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中,使用pandas库时,如果找不到指定的列名有几种可能的原因和解决办法。 1. 输入错误:首先检查是否正确输入了列名。列名应该与数据集中的列名完全匹配,包括大小写。可以使用`df.columns`属性查看数据集中的所有列名,确保没有输入错误。 2. 列名不存在:如果不存在指定的列名,可能是因为该列名实际上不在数据集中。可以使用`df.columns`属性查看所有列名,确保列名存在。此外,还可以使用`df.info()`查看数据集的信息,包括所有列名和每列的非空值数目。 3. 列名包含空格或特殊字符:如果指定的列名包含空格或特殊字符(如符号或中文字符),在使用列名时需要额外注意。一种解决办法是使用方括号`[]`来选择列,例如`df['列名']`。另一种解决办法是重命名列名,将其修改为不包含特殊字符的格式,例如使用下划线替换空格。 4. 数据类型不匹配:如果指定的列名存在,但是在使用时仍然出现问题,可能是因为列的数据类型与预期不符。例如,指定列的数据类型为整数,但是实际上是字符串。可以使用`df.dtypes`属性查看每列的数据类型,并确保与预期一致。 5. 数据集为空:如果数据集是空的,即没有任何行或列,那么任何列名都将无法找到。可以使用`df.empty`来检查数据集是否为空。在这种情况下,需要确认数据集是否正确加载,或者重新加载数据集。 总之,在处理pandas中找不到指定列名时,应该先确认输入是否正确,然后检查列名是否存在,是否包含特殊字符,数据类型是否匹配,以及数据集是否为空。通过逐步排查和调试,可以找到并解决找不到指定列名的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值