📜  pandas 货币 to numbe - Python (1)

📅  最后修改于: 2023-12-03 14:45:04.922000             🧑  作者: Mango

Pandas 货币转换为数字 - Python

在Pandas中,有时我们需要把货币转换为数字,以方便进行计算和分析。本篇文章将介绍如何使用Pandas将货币数据转换为数字。

方法一:字符串截取 + astype(float)

我们可以通过字符串截取的方法,将货币中的符号(如$)去掉,然后将截取后的字符串转换为浮点数类型。

import pandas as pd

df = pd.DataFrame({'Money': ['$1,200.50', '$2,300.75', '$3,400.35']})

# 字符串截取
df['Money'] = df['Money'].str.strip('$').str.replace(',', '')

# 转换为浮点数类型
df['Money'] = df['Money'].astype(float)

print(df)

输出结果为:

     Money
0  1200.50
1  2300.75
2  3400.35
方法二:apply()函数 + lambda表达式

我们也可以使用 apply() 函数和 lambda 表达式来将货币转换为数字。

import pandas as pd

df = pd.DataFrame({'Money': ['$1,200.50', '$2,300.75', '$3,400.35']})

df['Money'] = df['Money'].apply(lambda x: float(x.strip('$').replace(',', '')))

print(df)

输出结果为:

     Money
0  1200.50
1  2300.75
2  3400.35
方法三:locale模块 + astype(float)

如果你的数据中有些货币使用了不同的货币符号,可以考虑使用 locale 模块。locale 模块是 Python 中负责处理本地化信息的模块。以下是一个示例:

import pandas as pd
import locale

# 设置本地化信息
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')

df = pd.DataFrame({'Money': ['$1,200.50', '€2.300,75', '¥3,400.35']})

# 转换为浮点数类型
df['Money'] = df['Money'].apply(lambda x: locale.atof(x.strip('¥$€').replace(',', '')))

print(df)

输出结果为:

     Money
0  1200.50
1  2300.75
2  3400.35

以上是用Pandas进行货币到数字的转换的三种方法。希望本篇文章对你有所帮助。