将具有 1.185 亿欧元或 6 万欧元等货币值的 pandas 列转换为整数或浮点数 [关闭]

Posted

技术标签:

【中文标题】将具有 1.185 亿欧元或 6 万欧元等货币值的 pandas 列转换为整数或浮点数 [关闭]【英文标题】:Convert pandas column with currency values like €118.5M or €60K to integers or floats [closed] 【发布时间】:2020-03-31 14:07:01 【问题描述】:

我有一个 CSV 文件,其中有一列的值如 €118.5M 或 €60K,我需要将它们转换为整数或浮点数,然后进行计算。

import pandas as pd    
file = pd.read_csv("data.csv",index_col ="ID")    
file[:10]    
print(file)

1.185 亿欧元 .... 6 万欧元

【问题讨论】:

【参考方案1】:

该死,谷歌快速搜索发现:

def convert_si_to_number(x):
    total_stars = 0
    x = x.replace('€', '') 
    if 'k' in x:
        if len(x) > 1:
            total_stars = float(x.replace('k', '')) * 1000 # convert k to a thousand
    elif 'M' in x:
        if len(x) > 1:
            total_stars = float(x.replace('M', '')) * 1000000 # convert M to a million
    elif 'B' in x:
        total_stars = float(x.replace('B', '')) * 1000000000 # convert B to a Billion
    else:
        total_stars = int(x) # Less than 1000

    return int(total_stars)

应用到 df 的一种简单方法是循环运行它

for i, stringo in enumerate(file):
          file[i] = convert_si_to_number(stringo)

【讨论】:

您在哪里展示如何将其应用于数据框? 自己为欧元符号编辑了一行。为什么这么牛逼?要应用于数据框,您可以非常简单地在循环中运行。 如果您打算回答问题,请回答完整 这对我有用,但现在我想将此函数应用到值具有此列的文件中

以上是关于将具有 1.185 亿欧元或 6 万欧元等货币值的 pandas 列转换为整数或浮点数 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

芬兰开源数据库MariaDB获2290万欧元融资,阿里巴巴领投

用java写一个汇率的程序:将人民币与美元、欧元、英镑等多种货币的汇率保存在指定文件中,设计图形用

阿里巴巴已同意领投MariaDB总计金额2290万欧元

中国已为启动数字货币,申请了84项专利

GDPR罚单 | 亚马逊被罚7.46亿欧元

PHP中从欧元货币格式到美元货币格式