我在* .csv中具有以下标头的数据:
locationA_hhs位置A_hhs_ratio位置B_hhs位置B_hhs_ratio位置C_hhs位置C_hhs_ratio位置D_hhs位置D_hhs_ratio
此文件内容的其中一行:
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)
答案 0 :(得分:2)
replace(X)
替换完整值 X
,而不是该值的一部分。您必须使用regex=True
选项:
result = df_raw.loc[:, df.columns.str.endswith('_ratio')]\
.replace('%', '', regex=True).astype(float)
答案 1 :(得分:-1)
您可以使用双百分号%%
来防止其被解释,因此您可以打印实际的%
号:
如下例所示:
test = "have it break."
selectiveEscape = "Print percent %% in sentence and not %s" % test
print selectiveEscape
Print percent % in sentence and not have it break.