【问题标题】:Select pandas df rows based on position of the substring根据子字符串的位置选择 pandas df 行
【发布时间】:2018-04-05 18:31:17
【问题描述】:

我一直在用这样的子字符串选择 Pandas 行:

df[df['key'].str.contains("mykey")]

这很好,但是如果我不想知道值是否包含子字符串,但我真的需要指定位置怎么办?

例如,如果我有:

KEY
02038895
01024876

我该怎么做才能让我只返回value[2:4] == '02' 所在的行

我试过了:

df = df[df["KEY"].str[2:4] == "02"]

但我得到了:

TypeError: invalid type comparison

我正在比较字符串,所以我不确定类型错误。这不是完成这种比较的正确方法吗?

【问题讨论】:

  • df = pd.DataFrame({'KEY': ['02038895', '01024876']}); df[df['KEY'].str[2:4] == '02'] 似乎对我来说很好用。您能否显示更多代码/数据以重现错误?

标签: python python-3.x pandas


【解决方案1】:

这应该可行:

df[df.astype(str).KEY.str[1:3] == '02']
Out[34]: 
       KEY
1  1024876

【讨论】:

  • 谢谢,正如您所建议的,这是一个类型问题,因此转换为字符串有助于避免该问题。我之前没有正确投射。
猜你喜欢
  • 2017-04-22
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
  • 2021-03-30
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多