如何删除DataFrame中message列包含数字的整行数据
解决方法
你可以直接用pandas自带的方法实现过滤,两种常用方案供你选:
- 方案1:适配整数、浮点数形式的数字字符串过滤
如果只要是能转成数值的内容都要删掉,比如"25"、"89.6"这类都算要删除的数字内容,用pd.to_numeric做判断最方便:
import pandas as pd # 读取你的CSV文件 df = pd.read_csv("你的文件路径.csv") # 仅保留message列无法转为数字的行 df = df[pd.to_numeric(df["message"], errors="coerce").isna()]
- 方案2:仅过滤纯整数形式的数字字符串
如果只需要删除全是整数数字的内容,浮点数形式的字符串要保留,可以用正则匹配实现:
# 过滤掉message列完全由数字组成的行 df = df[~df["message"].str.match(r"^\d+$", na=False)]
说明:第二个方法里的
na=False参数会把空值判定为非数字保留,如果你需要同时删除message列为空的行,可以把这个参数去掉或者改成True。
处理完成后如果要导出结果,直接调用df.to_csv("输出文件路径.csv", index=False)即可。
内容的提问来源于stack exchange,提问作者rubyist
相关产品推荐
相关产品推荐

