Pandas dataFrame.nunique():(“unhashable type:'list'”,'在索引列出现')

时间:2018-06-11 09:44:25

标签: python pandas

我想将.nunique()函数应用于完整的dataFrame。

在下面的屏幕截图中,我们可以看到它包含130个功能。 Screenshot of shape and columns of the dataframe. 目标是获得每个功能的不同值的数量。 我使用以下代码(适用于另一个dataFrame)。

def nbDifferentValues(data):
    total = data.nunique()
    total = total.sort_values(ascending=False)
    percent = (total/data.shape[0]*100)
    return pd.concat([total, percent], axis=1, keys=['Total','Pourcentage'])

diffValues = nbDifferentValues(dataFrame)

代码在第一行失败,我得到以下错误,我不知道如何解决(“不可用类型:'列表'”,“发生在索引列”)Trace of the error

1 个答案:

答案 0 :(得分:2)

您可能有一个内容为列表的列。

由于Python中的列表是可变的,因此它们是不可用的。

var form = $(this).closest('form')[0];
var form_data = new FormData(form);
form_data.append('act', "edit");

解决方案:不要在数据框中使用可变结构(如列表)

import pandas as pd

df = pd.DataFrame([
    (0, [1,2]),
    (1, [2,3])    
])

#  raises "unhashable type : 'list'" error
df.nunique()