我有一个带有称为错误代码的列的python数据框:
df1=pd.DataFrame({'errorcodes1':[6321,235,314,421,5346,514,4,3415,136,216,34,623])
我需要一个输出以下内容的函数:[6,2,3,4,5,5,4,3,1,2,3,6]。
我曾考虑过将每个错误代码转换为字符串,然后提取元素[0]。但是,这涉及到字符串操作,即从整数转换为整数,这可能很慢。有没有更快的方法?
我认为字符串操作是最好的,或者您可以尝试按长度划分每个数据单元
如果禁止您转换为str
,则可以通过以下方式利用Briggs的对数:
import math
numbers = [6321,235,314,421,5346,514,4,3415,136,216,34,623]
def first_digit(n):
return n//10**int(math.log(n, 10))
for n in numbers:
print(n, first_digit(n), sep='\t')
输出:
6321 6
235 2
314 3
421 4
5346 5
514 5
4 4
3415 3
136 1
216 2
34 3
623 6