我对 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/