Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.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_Csv - Fatal编程技术网

Python 从数据帧中剥离字符并将剩余字符转换为浮点

Python 从数据帧中剥离字符并将剩余字符转换为浮点,python,pandas,csv,Python,Pandas,Csv,希望从我的pandas数据帧的整个列中去掉英镑字符,并将剩余的字符串转换为浮点 我尝试了替换方法,也尝试了拆分方法 OA_数据['向Wellcome收取的成本(英镑)(收取时包括增值税)]=OA_数据.loc[OA_数据['向Wellcome收取的成本(英镑)(收取时包括增值税)] .astype(str) .str.contains('英镑'),'Wellcome收取的成本(包括收取时的增值税)'] .替换(“;”,“) OA_数据[‘向Wellcome收取的成本(英镑)(收取时包括增值税)

希望从我的pandas数据帧的整个列中去掉英镑字符,并将剩余的字符串转换为浮点

我尝试了替换方法,也尝试了拆分方法

OA_数据['向Wellcome收取的成本(英镑)(收取时包括增值税)]=OA_数据.loc[OA_数据['向Wellcome收取的成本(英镑)(收取时包括增值税)]
.astype(str)
.str.contains('英镑'),'Wellcome收取的成本(包括收取时的增值税)']
.替换(“;”,“)
OA_数据[‘向Wellcome收取的成本(英镑)(收取时包括增值税)’]=OA_数据[‘向Wellcome收取的成本(英镑)(收取时包括增值税)’)。str.split(‘英镑’,expand=True)


我希望dataframe列中的字符串没有英镑符号,但这两种方法的实际结果都是仍然包含英镑符号的列。

试试这个:

OA_data['COST (£) charged to Wellcome (inc VAT when charged)'].apply(lambda x: float(x.replace('£',' ')))
例如:

import pandas as pd
df=pd.DataFrame()
df['a']=['1£','3','5£','6 £']
df['a'].apply(lambda x: float(x.replace('£',' ')))

请记住,您必须删除所有字符,因此如果还有其他字符,也必须删除


我想,从列的名称中,您可能不想删除它。

您能显示您创建的数据框吗,它的一部分?还有你写的代码。
df['a']

Output:

0    1.0
1    3.0
2    5.0
3    6.0
Name: a, dtype: float64