如何通过特定列中的值创建数据帧的子集?

2024-10-02 16:27:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试基于列中的多个值创建数据帧的子集。该列为“tencode_desc”,我要为其选择的值为:

“抢劫/抢劫”、“银行抢劫”、“入室盗窃”、“入室盗窃”- “非居住”、“盗窃”

我尝试用这些字符串创建一个新变量,然后对列使用.isin函数

df.columns

Index(['id', 'call_time', 'complaint_id', 'shift', 'tencode', 'tencode_desc','disposition', 'disposition_desc', 'unit', 'sector', 'zone', 'lat','lng'],dtype='object')

以下是我尝试过的:

tencode_filter = ['Holdup / Robbery', 'Bank Robbery', 'Burglary Residence', 'Burglary - Non-Residence', 'Theft']

df.loc[df['call_time'].isin(tencode_filter)]

我收到这个错误 ValueError: ('Unknown string format:', 'Holdup / Robbery')


Tags: 数据iddftimecallfilterdescdisposition
1条回答
网友
1楼 · 发布于 2024-10-02 16:27:19

使用

df = df[df.tencode_desc.str.contains('|'.join(tenecode_filter))]

将选项合并到正则表达式中。您可能需要转义正在使用的特殊字符,如'/'。比如

tencode_filter = ['Holdup \/ Robbery', 'Bank Robbery', 'Burglary Residence', 'Burglary - Non-Residence', 'Theft'].

相关问题 更多 >