Pandas 将 Int64(大写)转换为 int64

Hen*_*rix 1 python numpy dataframe

我得到一个结果 DataFrame,其列类型为Int64.

我怎样才能将它转换为int64

下面的代码不起作用。

print(region_ids.mycolumn.dtypes) 
region_ids['mycolumn'].astype(int64)    
print(region_ids.mycolumn.dtypes)
Run Code Online (Sandbox Code Playgroud)

实际结果:

Int64
Int64
Run Code Online (Sandbox Code Playgroud)

预期结果:

Int64
int64
Run Code Online (Sandbox Code Playgroud)

U10*_*ard 5

您还必须分配它,并在字符串中使用它,如下所示:

region_ids['mycolumn'] = region_ids['mycolumn'].astype('int64')  
Run Code Online (Sandbox Code Playgroud)

其实有不同的类型...

正如@tdelaney 提到的:

他们不是同一类型。Int64 是一个可为 null 的数组,并通过一个影子列来实现,该影子列告诉您给定的单元格是否应该是 pandas.NA。int64 的问题是,如果您有 NaN 值,列类型可能会更改为 float。如果没有 NaN,那么 int64 是更好的选择。pandas.arrays.IntegerArray

  • 他们不是同一类型。`Int64` 是一个可为空的数组,并通过影子列实现,告诉您给定的单元格是否应该是 `pandas.NA`。“int64”的问题是,如果您有 NaN 值,列类型可能会更改为浮点型。如果你没有 NaN,那么 `int64` 是更好的选择。[pandas.arrays.IntegerArray](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.arrays.IntegerArray.html#pandas-arrays-integerarray) (3认同)