【问题标题】:Transforming columns into numerical values when copying复制时将列转换为数值
【发布时间】:2020-01-26 00:53:09
【问题描述】:

我有一个通过

读入的数据框

data = pd.read_csv("animals_clean.csv")

它包含一个包含超过 67000 个值的列,并且始终重复相同的 80 多个值。
如:

   Ailurus
   Harpia
   Alligator
   Branta
   Araucaria
   Branta
   Alligator

我想在它旁边创建一个列,它采用每个单独的类型并为其分配一个数值。 比如

1
2
3
4
5
4
3

目前我唯一的选择是通过手动完成

data['animal'].replace(['harpia'], ['2'],inplace=True)

但这是不可行的,因为这需要时间

【问题讨论】:

  • 为什么鳄鱼有两个不同的数字?

标签: python pandas data-conversion columnsorting


【解决方案1】:

你可以试试

df['num_A']=df.A.astype('category').cat.codes

或者

df['num_A']=df.A.factorize()[0]

或者

df.groupby('A').ngroup()

【讨论】:

  • 谢谢。我最后使用了第二个,稍作调整data['nom_tax] = data['App.'].factorize(str)[0]
猜你喜欢
  • 1970-01-01
  • 2012-11-24
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 2021-11-10
  • 2019-09-22
相关资源
最近更新 更多