使用`.unique`和`value_counts()`

时间:2019-07-03 09:34:21

标签: python pandas numpy

从数据帧中获取数据时,我正在使用一列,并使用.unique()函数从该列中获取唯一值,并将这些值存储在np.array中。同样,对于该列,我还使用.value_counts()函数获取唯一值的计数并将其放入单独的数组中。当我得到两个数组时,我无法匹配它们的索引。

    x=np.array(df['Fruits'].unique())
    y=np.array(df['Fruits'].value_counts())

实际结果: array1=(['Apple','Mango','Orange']) . array2=([10,4,17]),其中苹果为17个,芒果为10个,橙色为4个。预期结果array1=(['Apple','Mango','Orange']) . array2=([17,10,4])

2 个答案:

答案 0 :(得分:1)

改为使用分组方式

photoBrowser:titleForPhotoAtIndex

为什么使用分组依据

来自文档:

value_count:生成的对象将按降序排列,因此第一个元素是出现频率最高的元素。

unique:按出现顺序返回唯一性。

因此df = pd.DataFrame({'Fruits': ['Mango']*15+['Apple']*10+['Orange']*5 }) adf = df.groupby(['Fruits']).size() x = adf.index.values y = adf.values value_count之间的顺序不一致

答案 1 :(得分:0)

value_count将返回一系列计数,这些计数由它们所计数的值索引。

value_series = df['Fruits'].value_counts(sort=False)
x=np.array(value_series.index)
y=np.array(value_series.values)