首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在pandas上单独计算特征重复(或Ridit特征工程)

如何在pandas上单独计算特征重复(或Ridit特征工程)
EN

Stack Overflow用户
提问于 2018-07-24 17:19:48
回答 1查看 125关注 0票数 1

通过我的机器学习项目,这似乎有多个用途,它可以计数重复,也可以用作特征提取,幸运的是,可以用于数字和类别,Ridit Analysys

我的数据似乎有很多重复,我想检查一下。这是我的数据

代码语言:javascript
复制
No   feature_1    feature_2   feature_3
1.          67           45          56 
2.          67           40          56
3.          67           40          51

这是我想要的

代码语言:javascript
复制
No   feature_1    feature_2   feature_3    duplication_1    duplication_2   duplication_3
1.          67           45          56                3                1               2
2.          67           40          56                3                2               2
3.          67           40          51                3                2               1

我所做的是

代码语言:javascript
复制
df1 = df.groupby(['feature_1']).size().reset_index()
df1.columns = ['customer_id', 'duplication_1']
df = df.merge(df1, on='customer_id', how='left')
df2 = df.groupby(['feature_2']).size().reset_index()
df2.columns = ['customer_id', 'duplication_2']
df = df.merge(df2, on='customer_id', how='left')
df3 = df.groupby(['feature_3']).size().reset_index()
df3.columns = ['customer_id', 'duplication_3']
df = df.merge(df3, on='customer_id', how='left')

但我正在寻找更好的替代方法,特别是当我们有大量的功能时

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-24 17:24:15

对每一列使用带有value_countstransformmap

代码语言:javascript
复制
for i, x in enumerate(df.columns):
    df['duplication_{}'.format(i + 1)] = df[x].map(df[x].value_counts())
    #alternative
    #df['duplication_{}'.format(i + 1)] = df.groupby(x)[x].transform('size')
print (df)
     feature_1  feature_2  feature_3  duplication_1  duplication_2  \
No                                                                   
1.0         67         45         56              3              1   
2.0         67         40         56              3              2   
3.0         67         40         51              3              2   

     duplication_3  
No                  
1.0              2  
2.0              2  
3.0              1  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51494967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档