0
aI有一个数据框,其中包含两列小数,我想从另一列中减去一列。然而,当我尝试做这样的事情:扣除熊猫中的两列小数
df['diff'] = df['a'] - ['b']
我得到
TypeError: unsupported operand type(s) for -: 'str' and 'str'
我导入CSV像这样:数据
pd.read_csv(file, sep='\t',
parse_dates = ['datetime'],
dtype={'a': decimal.Decimal, 'b': decimal.Decimal})
样品:
datetime a b
2014-10-15T00:00:01.752Z 8614.0 8616.0
2014-10-15T00:00:02.049Z 8613.0 8616.0
2014-10-15T00:00:02.049Z 8613.0 8616.0
2014-10-15T00:00:02.159Z 8613.0 8616.0
2014-10-15T00:00:02.159Z 8613.0 8616.0
2014-10-15T00:00:02.299Z 8614.0 8616.0
2014-10-15T00:00:02.299Z 8614.0 8616.0
2014-10-15T00:00:02.440Z 8614.0 8616.0
2014-10-15T00:00:02.440Z 8614.0 8616.0
为什么不把它们设置为浮动,然后做差异?你需要他们是十进制的吗?你可以发布你的原始数据,csv解析器应该能够嗅探dtype,如果它被如此存储:'19.2222',但是如果该列上的任何值不同,那么它可能具有混合dtypes,或者如果它被存储为像' '19 .2222''那么你需要将它们转换为 – EdChum 2014-10-17 08:09:34
我担心precisionwhen使用双打时 – Arg 2014-10-17 08:14:55
你的意思是64位浮点数的精度不够好? – EdChum 2014-10-17 08:15:40