当前位置: 首页 > 面试题库 >

在Pandas中将float64列转换为int64

卢鸿博
2023-03-14
问题内容

我试图将列从数据类型转换float64int64使用:

df['column name'].astype(int64)

但出现错误:

NameError:未定义名称“ int64”

专栏有人数,但其格式为:7500000.0我知道如何将其更改float64int64


问题答案:

大熊猫 0.24+的 解决方案,用于转换缺少值的数字:

df = pd.DataFrame({'column name':[7500000.0,7500000.0, np.nan]})
print (df['column name'])
0    7500000.0
1    7500000.0
2          NaN
Name: column name, dtype: float64

df['column name'] = df['column name'].astype(np.int64)

ValueError:无法将非限定值(NA或inf)转换为整数

#http://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html
df['column name'] = df['column name'].astype('Int64')
print (df['column name'])
0    7500000
1    7500000
2        NaN
Name: column name, dtype: Int64

我认为您需要转换为numpy.int64

df['column name'].astype(np.int64)

样品:

df = pd.DataFrame({'column name':[7500000.0,7500000.0]})
print (df['column name'])
0    7500000.0
1    7500000.0
Name: column name, dtype: float64

df['column name'] = df['column name'].astype(np.int64)
#same as
#df['column name'] = df['column name'].astype(pd.np.int64)
print (df['column name'])
0    7500000
1    7500000
Name: column name, dtype: int64

如果某些NaNS
IN列需要他们取代一些int(例如0)通过fillna,因为typeNaNfloat

df = pd.DataFrame({'column name':[7500000.0,np.nan]})

df['column name'] = df['column name'].fillna(0).astype(np.int64)
print (df['column name'])
0    7500000
1          0
Name: column name, dtype: int64

同时检查文档-缺少数据投射规则

编辑:

NaNs转换值是错误的:

df = pd.DataFrame({'column name':[7500000.0,np.nan]})

df['column name'] = df['column name'].values.astype(np.int64)
print (df['column name'])
0                7500000
1   -9223372036854775808
Name: column name, dtype: int64


 类似资料:
  • 问题内容: 如何在Go中将float64转换为int?我知道该包可用于在字符串之间进行任何转换,但不能用于不是字符串的数据类型之间的转换。我知道我可以使用将任何内容转换为字符串,然后转换为所需的数据类型的方法,但是这种额外的转换似乎有些笨拙- 是否有更好的方法来做到这一点? 问题答案:

  • 问题内容: 我有以下Python pandas数据框: 我想要: 我看过pivot(),pivot_table(),Transpose和unstack(),它们似乎都没有给我。熊猫新手,所以所有帮助表示赞赏。 问题答案: 您需要通过转置: 如果需要重命名列,则有点复杂: 另一个更快的解决方案是使用: 时间 :

  • 问题内容: 我正在尝试将字节切片转换为GoLang中的。我找不到在线解决此问题的方法。我见过先转换为字符串然后转换为a的建议,但这似乎不起作用,它失去了它的值,最后以零结束。 例: 而且它不起作用… 问题答案: 例如, 输出:

  • 问题内容: 我在以字符串格式导入的pandas DataFrame中有一个字段。它应该是日期时间变量。如何将其转换为datetime列,然后根据日期进行过滤。 例: DataFrame Name: raw_data Column Name: Mycol Value Format in Column: ‘05SEP2014:00:00:00.000’ 问题答案: 使用该函数,指定一种格式以匹配您的数

  • 问题内容: 将float转换为int时如何避免浮点错误。例如,下面的代码打印出来:当我受伤时,期望它打印出来。 问题答案: 您需要了解一些内容:是一个十进制数字(以十进制基数表示)。十进制中的是一个有限数字,正好是:。 通常,计算机以二进制表示形式存储数字。该数字不能用有限的二进制数表示:是以二进制表示的 无限 数(同样的原因为什么不能用有限的十进制数表示,它是一个无穷的序列:)。 但是Go(像其

  • 所以我的数据集有一些n个日期的位置信息。问题是每个日期实际上是不同的列标题。例如CSV看起来像 我想让它看起来像 我的问题是我不知道该列中有多少个日期(尽管我知道它们总是在name之后开始)