首页 > 解决方案 > 我如何将字符串索引转换为整数索引

问题描述

数据框:

迎合 评分
一个 2.5
b 4
C 3
一个 4
一个 2.5
b 4

我想要的是:

迎合 评分 平均
一个 2.5 3.25
b 4 3.5
C 3 3
一个 4 3.25
b 2.5 3.5
b 4 3.5

如何将满足索引转换为整数索引?

标签: pythonpandasstring

解决方案


您需要使用自己的分组版本自行加入您的数据框。这可以通过使用pd.merge()您的数据框作为左表变量和 groupby 数据框作为您的右表变量来实现。

>>> df
   cater  rating
0      1     2.5
1      2     4.0
2      3     3.0
3      1     4.0
4      2     2.5
5      2     4.0
>>> df2 = df.groupby('cater', as_index=False).mean()
>>> df2
   cater  rating
0      1    3.25
1      2    3.50
2      3    3.00
>>> df3 = pd.merge(df, df2, on='cater', suffixes=('', '_average'))
>>> df3.assign(cater = df3['cater'].map({1:'a',2:'b',3:'c'}))
  cater  rating  rating_average
0     a     2.5            3.25
1     a     4.0            3.25
2     b     4.0            3.50
3     b     2.5            3.50
4     b     4.0            3.50
5     c     3.0            3.00

推荐阅读