首页 > 解决方案 > 如何将整数分配给 Pandas 中的单元格?

问题描述

我想遍历数据框并使用返回的索引创建一个新列enumerate(),但我无法将值分配为整数,我需要稍后对其进行转换。有没有办法一次性做到这一点?

如您所见,整数的直接赋值失败。

df.loc[indexes, ('route', 'id')] = int(i)
print(df.loc[indexes, ('route', 'id')].dtypes)  # float64

需要使用第二行代码进行转换:

df.loc[indexes, ('route', 'id')] = df.loc[indexes, ('route', 'id')].astype(int)
print(df.loc[indexes, ('route', 'id')].dtypes)  # int64

标签: pythonpandas

解决方案


链接向您展示如何将列的值分配给 pandas 中的 int 类型。基本上你可以通过使用来做到这一点:

  1. to_numeric() - 提供安全地将非数字类型(例如字符串)转换为合适的数字类型的功能。(另见 to_datetime() 和 to_timedelta()。)
  2. astype() - 将(几乎)任何类型转换为(几乎)任何其他类型(即使这样做不一定明智)。还允许您转换为分类类型(非常有用)。
  3. infer_objects() - 如果可能的话,一种实用方法,用于将保存 Python 对象的对象列转换为 pandas 类型。
  4. convert_dtypes() - 将 DataFrame 列转换为支持 pd.NA 的“最佳”dtype(pandas 的对象表示缺失值)。

推荐阅读