从数据框中的数字中提取最高位数的数字

问题描述 投票:-2回答:2

我有一个带有称为错误代码的列的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]。但是,这涉及到字符串操作,即从整数转换为整数,这可能很慢。有没有更快的方法?

python dataframe digits
2个回答
0
投票

我认为字符串操作是最好的,或者您可以尝试按长度划分每个数据单元


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
© www.soinside.com 2019 - 2024. All rights reserved.