You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Pandas DataFrame中删除City列值为CT(41.575155 -72.738288)的行?

解决Pandas DataFrame删除特定行的问题

嘿,我来帮你搞定这个问题!要删除City列值为CT(41.575155 -72.738288)的行,有几种简单可靠的方法,我给你一一列出来:

方法1:直接通过布尔索引筛选保留需要的行

这是最直观的方式,直接保留City列不等于目标值的所有行:

import pandas as pd

# 先构造你的示例DataFrame(方便测试)
data = {
    'Date': ['07/17/2012', '10/01/2012', '04/28/2013', '04/06/2014', '04/27/2014'],
    'Sex': ['Female', 'Male', 'Male', 'Male', 'Male'],
    'Race': ['White', 'White', 'White', 'White', 'White'],
    'Cause of Death': ['1,1-Difluoroethane Toxicity', 'Heroin Toxicity', 'Acute Heroin Toxicity', 'Heroin and Cocaine Intoxication', 'Acute Heroin Intoxication'],
    'City': [pd.NA, 'PORTLAND', 'CT(41.575155 -72.738288)', 'WATERBURY', 'NEW LONDON'],
    'state': [pd.NA, 'CT', pd.NA, 'CT', 'CT']
}
df = pd.DataFrame(data)

# 核心操作:删除目标行
df = df[df['City'] != 'CT(41.575155 -72.738288)']

这种方法会自动保留City列是NaN的行,因为NaN和任何值比较结果都是False,不会被误删。

方法2:通过正则匹配删除格式类似的行

如果以后还有类似带坐标的错误值(比如CT(xxx.xxx -xxx.xxx)格式),可以用正则表达式批量匹配删除,通用性更强:

# 匹配"CT(数字 数字)"格式的字符串,~表示取反保留其他行,na=False保留NaN行
df = df[~df['City'].str.contains(r'CT\(\d+\.\d+ -\d+\.\d+\)', na=False)]

方法3:先定位索引再删除

如果你想先确认目标行的索引再动手删除,可以这么做:

# 找到目标行的索引
target_index = df[df['City'] == 'CT(41.575155 -72.738288)'].index
# 删除该行(加inplace=True可直接修改原DataFrame,无需重新赋值)
df.drop(target_index, inplace=True)

⚠️ 小贴士:用inplace=True会直接修改原DataFrame,不需要重新赋值,但如果需要保留原始数据备份,建议还是赋值给新变量,避免数据丢失。

内容的提问来源于stack exchange,提问作者Hima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 22:57:27