我有这样的数据
0 504189219
1 500618053
2 0537533477
3 966581566618
4 00536079946我希望输出是这样的
504189219
500618053
537533477
581566618
536079946发布于 2022-02-16 11:30:53
使用str.extract
df['Col'] = df['Col'].str.extract('(5\d{8})')
print(df)
# Output
Col
0 504189219
1 500618053
2 537533477
3 581566618
4 536079946设置:
df = pd.DataFrame({'Col': ['504189219', '500618053', '0537533477',
'966581566618', '00536079946']})
print(df)
# Output
Col
0 504189219
1 500618053
2 0537533477
3 966581566618
4 00536079946发布于 2022-02-16 11:30:54
有一个名为phonenumbers的库可以帮助您完成这项工作,请参阅this post
发布于 2022-02-16 11:47:48
使用与Corr外星人相同的设置,这种方法也是可能的:
df = pd.DataFrame({'Col': ['504189219', '500618053', '0537533477',
'966581566618', '00536079946']})
def getNumber(n):
return n[n.find('5'):n.find('5') + 9]
df['Col'] = df['Col'].apply(getNumber)
print(df)同样的结果也可以通过lambda表达式来实现。
其他答案最初没有考虑到这9个数字的限制。
https://stackoverflow.com/questions/71140930
复制相似问题