pandas 如何把Excel中金额数据转换成为int类型?

因为业务需求是比较两张表里的金额是否一致,一张表提取出来是字符串类型,来一张是int类型。
如在提取单元格数据后有字符串类型数据
8,663,518.78
594,973.68
400,000.00
7,656.30
如何把上面转换成int类型
8663518.78
594973.68
400000
7656.3
或者如何在提取的时候就是默认int类型

你的数字都是有小数点的,怎么能转成int
如果数据再某一列上

for i in range(len(dd['某一列'])):
    dd.loc[i,'list_date']=float(dd.loc[i,'list_date'].replace(",",""))

您可以使用 pandas.to_numeric 函数将 Excel 中的金额数据转换为整数类型。例如:

import pandas as pd

# 假设您已经使用 pandas 读取了 Excel 文件
# df 是一个包含金额数据的 DataFrame

# 使用 to_numeric 将数据转换为整数类型
df['amount'] = pd.to_numeric(df['amount'], downcast='integer')

在上面的代码中,我们首先导入了 pandas 库。然后,我们使用 to_numeric 函数将 DataFrame 中的 amount 列转换为整数类型。我们还使用了 downcast 参数来指示如何转换数据,在这种情况下,我们将使用最小的整数类型(例如,如果所有数据都在范围内,则使用 int8)。

请注意,如果数据中存在缺失值,则 to_numeric 函数可能会抛出异常。您可以使用 errors 参数指示如何处理缺失值,例如,您可以将其设置为 errors='coerce',这样就会将缺失值转换为 NaN。

希望这能帮助您!

可以尝试编写一个函数,将带有逗号的用金额表示的数值转化为数字

img


运行结果为:

img

使用 pandas 中的 astype 函数可以将数据转换为 int 类型。

例如,对于提取出来的金额数据的字符串类型的数据,可以这样转换:

import pandas as pd

# 提取出来的数据
data = ['8,663,518.78', '594,973.68', '400,000.00', '7,656.30']

# 转换为 int 类型
data = pd.to_numeric(data, errors='coerce').astype(int)

# 输出结果
print(data)
# 输出:[8663518 594973 400000 7656]

如果在提取的时候就想默认为 int 类型,可以在读入数据的时候使用 dtype 参数指定类型。

例如,使用 pd.read_excel 函数读入 Excel 中的数据,可以这样指定类型:

import pandas as pd

# 读入 Excel 中的数据,将金额数据指定为 int 类型
data = pd.read_excel('file.xlsx', dtype={'金额': int})

# 输出结果
print(data)

提供参考代码和参考实例,参考代码:

def convert_percent(val):
    """
    转化%的字符串为浮点类型
    - 移除 %
    - 除以100
    """
    new_val = val.replace('%', '')
    return float(new_val) / 100

df_2 = pd.read_csv("data/sales_data_types.csv",
                   dtype={'Customer Number': 'int'},
                   converters={'2016': convert_currency,
                               '2017': convert_currency,
                               'Percent Growth': convert_percent,
                               'Jan Units': lambda x: pd.to_numeric(x, errors='coerce'),
                               'Active': lambda x: np.where(x == "Y", True, False)
                              })

参考实例:https://blog.csdn.net/qq_41404557/article/details/125898404
【实例讲解详细,注解清晰】