我想将.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
答案 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()