Python 在数据帧中替换“%”,然后将所有字符串转换为float

Python 在数据帧中替换“%”,然后将所有字符串转换为float,python,pandas,dataframe,select,lambda,Python,Pandas,Dataframe,Select,Lambda,我在*.csv中有以下标题的数据: 地点A_hhs地点A_hhs_比率地点B_hhs_比率地点C_hhs_比率地点D_hhs_比率地点 以下是此文件内容的一行: 16 0.52%19 0.88%14 0.46%17 0.29% 我只需要把百分比读作浮动。 假设我已将*.csv读入数据框,我将尝试仅选择以“ratio”结尾的列名,将“%”替换为,然后将所有这些列转换为float类型。但这段代码不会产生这样的结果。 请帮忙 df_raw.select(lambda col: col.endswith

我在*.csv中有以下标题的数据:

地点A_hhs地点A_hhs_比率地点B_hhs_比率地点C_hhs_比率地点D_hhs_比率地点

以下是此文件内容的一行:

16 0.52%19 0.88%14 0.46%17 0.29%

我只需要把百分比读作浮动。 假设我已将*.csv读入数据框,我将尝试仅选择以“ratio”结尾的列名,将“%”替换为,然后将所有这些列转换为float类型。但这段代码不会产生这样的结果。 请帮忙

df_raw.select(lambda col: col.endswith('ratio'), axis=1).replace('%','').astype(float)

您可以使用双百分号%%来防止对其进行解释,以便打印实际的百分号:

例如:

test = "have it break."
selectiveEscape = "Print percent %% in sentence and not %s" % test
print selectiveEscape

Print percent % in sentence and not have it break.
replaceX替换完整值X,而不是值的一部分。您必须使用regex=True选项:

result = df_raw.loc[:, df.columns.str.endswith('_ratio')]\
               .replace('%', '', regex=True).astype(float)