我对 Python 相当陌生,目前我正在尝试构建一个函数来搜索列中元素的前 2 位数字,如果为真,则返回带有新标题的结果,例如区域

例如,

   Adres  AreaCode Region
0  SArea    123191      A
1  BArea    122929      A
2  AArea    132222      B

我希望该函数只搜索区域代码的前 2 位数字,这将给我结果以及区域的新 header ,该 header 根据区域代码的前 2 位数字对区域进行分类。
所以在这种情况下,12 会给我 A,13 会给我 B

我已经试过了
df.loc[df.AreaCode == 123191, 'Region'] = 'A'

这适用于整个区域代码,但我不知道如何修改它,以便我能够根据前 2 位数字进行搜索。

我试过这个
df.loc[df.AreaCode.str.contains == 12, 'Region' ] = 'A'

但它给了我错误:
AttributeError: Can only use .str accessor with string values,
                which use np.object_ dtype in pandas

我该如何解决这个问题,非常感谢您的帮助!

最佳答案



您可以简单地将其转换为字符串,然后使用相同的代码:

df.loc[df.AreaCode.astype(str).str.startswith('12'), 'Region' ] = 'A'

关于python - 在 Python Pandas 中,如何搜索列元素是否包含前 2 位数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52518283/

10-12 18:44