首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据质量. Pandas

数据质量. Pandas
EN

Stack Overflow用户
提问于 2018-06-18 10:54:30
回答 2查看 2.4K关注 0票数 0

我正在使用Python和Pandas做一个数据质量项目。我有一个输入数据,其中每一列都是分类数据,我想返回一个数据,其中每一列包含该列中最常见的10个类别,以及所述类别的名称(即键值对或带有分类变量的元组:每个单元格中的计数)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-18 11:55:30

最简单的方法是使用一个DataFrame列构建结果MultiIndex

代码语言:javascript
复制
np.random.seed(0)

#Create dataframe with random data
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

columns = pd.MultiIndex.from_product((df.columns, ['index', 'count']), names= ['column', None])
result = pd.DataFrame(columns=columns, index=range(1, 11))

然后,我看到的唯一方法就是在列上循环。

代码语言:javascript
复制
for column_name, column in df.items():
    top_10 = column.value_counts(normalize=False).iloc[:10]
    result[(column_name, 'index')] = top_10.index
    result[(column_name, 'count')] = top_10.values

列A B C D指数计1 81 4 32 5 3 3 67 4 46 3 79 3 5 3 0 3 3 82 3 99 3 19 3 35 3 4 20 350 3 51 3 28 3 23 3 53 3 41 3 11 3 24 3 13 3 36 3 58 2 7 41 3 37 2 72 2 8 42 3 87 3 35 2 32 2 9 71 358 2 61 2 65 2 10 0 3 91 2 58 2 98

票数 0
EN

Stack Overflow用户

发布于 2018-06-18 11:04:11

您可以获得字典格式的值计数对,如下所示:

代码语言:javascript
复制
df["column"].value_counts(False).to_dict()

您可以迭代地使用此方法来填充数据,如下所示:

代码语言:javascript
复制
#Import dependencies
import numpy as np
import pandas as pd

#Create dataframe with random data
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

#Create a 'result dataframe' 
resultDf = pd.DataFrame(columns=list(df.keys()))

#Append value-count pairs to new dataframe
for column in df.keys():
    _dict_ = df[column].value_counts(False).to_dict()
    for index, key in enumerate(_dict_):
        resultDf.loc[index, column] = [key,_dict_.get(key)]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50907880

复制
相关文章

相似问题

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