pandas 提取float64变量的第一个数字

q0qdq0h2  于 2023-10-14  发布在  其他
关注(0)|答案(2)|浏览(94)

我使用pd.read_excel()函数将.xlsb文件导入到python(pycharm IDE)中;但是,在导入.xlsb文件之前,我先将其转换为.xlsx,然后再导入。请注意,我没有使用.xlsb,因为我遇到了有关日期变量解析的问题。
现在我需要提取float 64类型变量的第一个数字,并运行以下代码:

app_invoice = app_invoice \
    .assign (FIRSTDIGIT = int(str(app_invoice['INVOICE_AMOUNT'][:1]))
            )

但它不提取第一个数字。然后我通过运行以下代码检查了问题-

str(app_invoice['INVOICE_AMOUNT'])

但它的输出是这样的我不知道为什么是\n1等等

0         13611.34\n1         91000.00\n2           159.97\n3          1300.00\n4  
dgiusagp

dgiusagp1#

使用.astype(str)将浮点数转换为字符串,然后使用.str.get(0)获取此字符串的第一个字符。

app_invoice['INVOICE_AMOUNT'].astype(str).str.get(0)

这将返回一个pandas系列的第一个数字。

0x6upsns

0x6upsns2#

尝试显式地使用Series.apply

first_digits = invoice['INVOICE_AMOUNT'].apply(lambda x: str(x)[:1])

得到一个普通的Python数字列表你可以做一些类似的事情,把它变成一个pandas列。

相关问题