Python 转换器参数取决于另一列值
在我的脚本中,我想读取一些csv文件,同时转换输入值。但一列的值取决于另一列的值(此列不进行转换)。有没有办法在读取csv时实现这一点,或者在读取csv后我必须更改它 file.csvPython 转换器参数取决于另一列值,python,pandas,Python,Pandas,在我的脚本中,我想读取一些csv文件,同时转换输入值。但一列的值取决于另一列的值(此列不进行转换)。有没有办法在读取csv时实现这一点,或者在读取csv后我必须更改它 file.csv date total percentage 03/25/2017 100 1% 04/15/2016 200 6% 预期产量 date total success 03/25/2017 100 1
date total percentage
03/25/2017 100 1%
04/15/2016 200 6%
预期产量
date total success
03/25/2017 100 1
04/15/2016 200 12
去掉字符串
%
并转换为浮点,然后进行乘法:
df['success']=df.total*df.percentage.str.rstrip('%').astype('float') / 100.0
print(df)
date total percentage success
0 03/25/2017 100 1% 1.0
1 04/15/2016 200 6% 12.0
要在读取文件时将其从字符串转换为浮点值,请使用以下命令:
您能提供预期的输出吗?第二个解决方案不能计算正确的成功率,因为它只是删除%并将其除以100。它应该使用“总计”列来计算正确的成功率。@myslak这只是为了转换,post这只是乘法。:)<代码> df.t**df.%s/代码> @ MySLAK,如果此解决方案解决了您的问题,请考虑将其标记为
df['success']=df.total*df.percentage.str.rstrip('%').astype('float') / 100.0
print(df)
date total percentage success
0 03/25/2017 100 1% 1.0
1 04/15/2016 200 6% 12.0
def p2f(x):
return float(x.strip('%'))/100
pd.read_csv(file, sep='whatever',converters={'percentage':p2f})