首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么当我尝试添加两列时,熊猫给出了"0.66-0.36“?

为什么当我尝试添加两列时,熊猫给出了"0.66-0.36“?
EN

Stack Overflow用户
提问于 2018-05-21 17:11:00
回答 1查看 56关注 0票数 1

我正在尝试用列名Tangible Book ValueEarnings Per Share做一个简单的求和:

df['price_asset_EPS'] = (df["Tangible Book Value"]) + (df["Earnings Per Share"])

但是,结果不会计算数字,加号也会丢失,如下所示

0.66-0.36 
1.440.0

在这两者之间我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-05-21 17:58:15

您的列不会被视为数字,而是字符串。尝试运行df.dtypes。对于每一列,您将拥有它的类型。如果您没有看到floatint,这意味着这些列可能已经被作为字符串读入。

import pandas as pd
dff = pd.DataFrame([[1,'a'], [2, 'b']])
dff.dtypes
0     int64
1    object

下面我创建了一个在引号中包含数字的数据帧。看一看dtypes

dff = pd.DataFrame([['1','a'], ['2', 'b']])
dff.dtypes
0    object
1    object

在这里您可以看到,由于引号的缘故,numbers列没有被标记为int/float。现在,如果我取第一列的和

dff.iloc[:,0].sum()
'12'

我得到了'12',和你的情况是一样的。要将这些列转换为数字,请查看pd.to_numeric

dff.iloc[:,0] = pd.to_numeric(dff.iloc[:,0], errors='ignore')
dff.iloc[:,0].sum()
3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50445428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档