替换熊猫数据框的唯一值[英] Replace unique values of pandas data-frame

本文是小编为大家收集整理的关于替换熊猫数据框的唯一值的处理方法,想解了替换熊猫数据框的唯一值的问题怎么解决?替换熊猫数据框的唯一值问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

嗨,我是Python和Pandas的新手.

我使用pandas提取了其中一个列的唯一值. 现在,在获得了字符串的唯一值之后.

['Others, Senior Management-Finance, Senior Management-Sales'
  'Consulting, Strategic planning, Senior Management-Finance'
  'Client Servicing, Quality Control - Product/ Process, Strategic       
   planning'
  'Administration/ Facilities, Business Analytics, Client Servicing'
  'Sales & Marketing, Sales/ Business Development/ Account Management,    
  Sales Support']

我想用唯一的整数值替换字符串值.

为简单起见,我可以给您虚拟输入和输出.

输入:

Col1
  A
  A
  B
  B
  B
  C
  C

唯一的DF值将如下

出现
[ 'A' 'B' 'C' ]

更换后的列应该看起来像

Col1
  1
  1
  2
  2
  2
  3
  3

请建议我如何通过使用循环或任何其他方式来做到这一点,因为我有超过300唯一的值.

推荐答案

使用 factorize factorize :

df['Col1'] = pd.factorize(df.Col1)[0] + 1
print (df)
   Col1
0     1
1     1
2     2
3     2
4     2
5     3
6     3

分解值..

.

另一个 numpy.unique 在巨大 dataframe :

_,idx = np.unique(df['Col1'],return_inverse=True) 
df['Col1'] = idx + 1
print (df)
   Col1
0     1
1     1
2     2
3     2
4     2
5     3
6     3

最后您可以将值转换为 categorical categorical - 主要是因为少于记忆使用范围

df['Col1'] = pd.factorize(df.Col1)[0]
df['Col1'] = df['Col1'].astype("category")
print (df)
  Col1
0    0
1    0
2    1
3    1
4    1
5    2
6    2

print (df.dtypes)
Col1    category
dtype: object

本文地址:https://www.itbaoku.cn/post/1727879.html