替换pandas datafram的唯一值

2024-09-28 01:33:49 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我是Python和熊猫的新手。在

我用pandas提取了其中一个专栏的唯一值。 现在在获得列的唯一值之后,这些值是string。在

['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']

我想用唯一整数值替换字符串值。在

为了简单起见,我可以给你一个虚拟的输入和输出。在

输入:

^{pr2}$

唯一的测向值如下所示

[ 'A' 'B' 'C' ]

更换后的柱子应该是这样的

Col1
  1
  1
  2
  2
  2
  3
  3

请建议我如何使用循环或任何其他方法来完成此操作,因为我有多个300个唯一值。在


Tags: clientpandasstringbusinessconsultingmanagementplanningsales
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:49

使用^{}

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

Factorizing values。在

另一个^{}解决方案,但在巨大的dataframe中速度较慢:

^{pr2}$

最后,可以将值转换为^{}-主要是因为memory usage更少:

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

相关问题 更多 >

    热门问题