我仍在学习python,但是我对数据帧越来越流利。 我正在尝试在熊猫数据框中进行测量,这是不同长度的最常见行。 例如,对于一个5列的表: -在5列中查找最频繁的3个元素中最常见的元素,依此类推。
然后,我自己进行了此工作之后,我发现了groupby和汇总。下面是我写的一些代码,您也可以执行
smallData=pd.DataFrame(np.array([[1,2,3,4,5],[4,5,6,7,8],[1,2,3,3,3],[1,2,2,3,3],[1,2,3,5,3],[1,2,3,5,3]]),columns=['1', '2','3','4','5'])
keep=smallData.groupby(['1', '2','3','4','5']).size()
这给了我一个很好的表,它同时显示了不同行的相似程度:
keep
Out[414]:
1 2 3 4 5
1 2 2 3 3 1
3 3 3 1
4 5 1
5 3 2
4 5 6 7 8 1
dtype: int64
现在的最后一列是每个系列的频率。我的真实数据集要大得多,我想选择最后一列并对其进行排序,以便找出最常见的发生序列。
keep变量似乎不再是数据帧,而是我第一次看到的东西。
keep.describe
Out[413]:
<bound method NDFrame.describe of 1 2 3 4 5
1 2 2 3 3 1
3 3 3 1
4 5 1
5 3 2
4 5 6 7 8 1
dtype: int64>
这种结构的形状似乎也不像结构类型的矩阵
keep.shape
Out[412]: (5,)
您能以其他方式帮助我访问这些值或查找最常见的相似序列吗?
在此先感谢您的帮助。 问候 亚历克斯
答案 0 :(得分:0)
尝试使用此:
DataFrame。模式(轴= 0,numerical_only = False,dropna = True)[源代码]
获取沿选定轴的每个元素的模式。
一组值的模式是最常出现的值。它 可以是多个值。
轴: {0或“索引”,1或“列”},默认为0
搜索模式时要迭代的轴:
- 0或“ index”:获取各列的模式
- 1或“列”:获取每一行的模式
仅数字:布尔型,默认为False
如果为True,则仅适用于数字列。
dropna : bool,默认为True
不考虑NaN / NaT的计数。