首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Pandas中将浮点型转换为整型?

在Pandas中将浮点型转换为整型?
EN

Stack Overflow用户
提问于 2014-01-23 02:42:16
回答 7查看 736.5K关注 0票数 299

我一直在处理从CSV导入的数据。Pandas将一些列更改为浮点型,因此这些列中的数字现在显示为浮点数!但是,我需要将它们显示为整数,或者不带逗号。有没有办法将它们转换为整数或不显示逗号?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-01-23 03:01:18

要修改浮点输出,请执行以下操作:

代码语言:javascript
复制
df= pd.DataFrame(range(5), columns=['a'])
df.a = df.a.astype(float)
df

Out[33]:

          a
0 0.0000000
1 1.0000000
2 2.0000000
3 3.0000000
4 4.0000000

pd.options.display.float_format = '{:,.0f}'.format
df

Out[35]:

   a
0  0
1  1
2  2
3  3
4  4
票数 269
EN

Stack Overflow用户

发布于 2014-01-23 02:49:12

使用pandas.DataFrame.astype()函数操作列数据类型。

代码语言:javascript
复制
>>> df = pd.DataFrame(np.random.rand(3,4), columns=list("ABCD"))
>>> df
          A         B         C         D
0  0.542447  0.949988  0.669239  0.879887
1  0.068542  0.757775  0.891903  0.384542
2  0.021274  0.587504  0.180426  0.574300
>>> df[list("ABCD")] = df[list("ABCD")].astype(int)
>>> df
   A  B  C  D
0  0  0  0  0
1  0  0  0  0
2  0  0  0  0

编辑:

要处理缺少的值,请执行以下操作:

代码语言:javascript
复制
>>> df
          A         B     C         D
0  0.475103  0.355453  0.66  0.869336
1  0.260395  0.200287   NaN  0.617024
2  0.517692  0.735613  0.18  0.657106
>>> df[list("ABCD")] = df[list("ABCD")].fillna(0.0).astype(int)
>>> df
   A  B  C  D
0  0  0  0  0
1  0  0  0  0
2  0  0  0  0
票数 234
EN

Stack Overflow用户

发布于 2016-12-19 16:30:17

考虑以下数据帧:

代码语言:javascript
复制
>>> df = pd.DataFrame(10*np.random.rand(3, 4), columns=list("ABCD"))
>>> print(df)
...           A         B         C         D
... 0  8.362940  0.354027  1.916283  6.226750
... 1  1.988232  9.003545  9.277504  8.522808
... 2  1.141432  4.935593  2.700118  7.739108

使用列名列表,使用applymap()更改多个列的类型

代码语言:javascript
复制
>>> cols = ['A', 'B']
>>> df[cols] = df[cols].applymap(np.int64)
>>> print(df)
...    A  B         C         D
... 0  8  0  1.916283  6.226750
... 1  1  9  9.277504  8.522808
... 2  1  4  2.700118  7.739108

或者使用apply()表示单个列

代码语言:javascript
复制
>>> df['C'] = df['C'].apply(np.int64)
>>> print(df)
...    A  B  C         D
... 0  8  0  1  6.226750
... 1  1  9  9  8.522808
... 2  1  4  2  7.739108
票数 56
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21291259

复制
相关文章

相似问题

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