在pandas dataframe中对多索引列表进行排序

时间:2017-07-05 23:04:47

标签: python pandas data-structures

我在列表格式的pandas数据框中有多个索引调查数据。其中一个子集如下。我试图按升序排序列,而不是每个等级的值计数。

rank these items on a scale of 1-5 rank these items on a scale of 1-3

                                               A   B   C                     
X   Y   Z
                                               1   2   1
1   2   1                                      2   3   2
2   1   3                                      1   2   3
3   1   1                                      1   1   2
5   3   2                                      2   1   3
1   1   2                                      3   1   1
NA  5   3                                      3   2   NA
4   NA  NA                                     1   3   1
1   4   4                                      2   NA  2
3   3   5`

我使用以下代码从数据框中删除NA并获取值的计数但我无法在计数之前按升序对值进行排序。

`def find_column_with_max_length(df):
    n = ''
    count = 0
    for name, values in df.iteritems():
        df[name] = pd.to_numeric(df[name], errors='coerce')
        c = len(df[name].value_counts().values.tolist())
        if c > count:
            count = c
            n = name
    return n`

    df1 = pd.DataFrame()
    df1 = df1.sort_values('n', ascending=True)
    n = find_column_with_max_length(df)
    df1[n] = pd.DataFrame(df[n].value_counts().values.tolist(), columns=[n])
    for name, values in df.iteritems():
        if name != n:
            df1[name] = pd.DataFrame(df[name].value_counts().values.tolist(),
                                        columns=[name])`    

非常感谢这方面的任何帮助。

0 个答案:

没有答案