Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧中多列的字符串转换为浮点值_Python_Pandas_Dataframe_Type Conversion - Fatal编程技术网

Python 将数据帧中多列的字符串转换为浮点值

Python 将数据帧中多列的字符串转换为浮点值,python,pandas,dataframe,type-conversion,Python,Pandas,Dataframe,Type Conversion,我正在使用FIFA 19的数据集,目前正在尝试将字符串值、工资和释放条款转换为浮动值,例如将1.105亿欧元转换为1.105亿欧元。下面是我的函数,它将文本作为参数并返回浮点值: def text_to_num(text): d = {'K': 3, 'M': 6, 'B': 9} new_text = text[1:] if new_text[-1] in d: num = new_text[:-1] magnitude = new_te

我正在使用FIFA 19的数据集,目前正在尝试将字符串值、工资和释放条款转换为浮动值,例如将1.105亿欧元转换为1.105亿欧元。下面是我的函数,它将文本作为参数并返回浮点值:

def text_to_num(text):
    d = {'K': 3, 'M': 6, 'B': 9}
    new_text = text[1:]
    if new_text[-1] in d:
        num = new_text[:-1]
        magnitude = new_text[-1]
        return Decimal(num) * 10 ** d[magnitude]
    else:
        return Decimal(new_text)
很容易将其应用于单列,例如值:

def convert_into_float(data):
    data['Value'] = data['Value'].apply(text_to_num)
    return data
我想知道,如何一次转换所有3列,而不是三次使用上述函数

def main():
    # load the data from .csv file, use ID column as index  
    new_data = load_data("data.csv", 'ID') 
    new_data = convert_into_float(new_data)
您可以使用“按列表筛选的列”:

def convert_into_float(data):
    cols = ['col1','col2','col3']
    data[cols] = data[cols].applymap(text_to_num)
    return data