📅  最后修改于: 2023-12-03 14:45:04.922000             🧑  作者: Mango
在Pandas中,有时我们需要把货币转换为数字,以方便进行计算和分析。本篇文章将介绍如何使用Pandas将货币数据转换为数字。
我们可以通过字符串截取的方法,将货币中的符号(如$)去掉,然后将截取后的字符串转换为浮点数类型。
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 表达式来将货币转换为数字。
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 模块。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进行货币到数字的转换的三种方法。希望本篇文章对你有所帮助。