在熊猫和NDFrame中找到相似的序列(逐行)

时间:2019-06-07 09:07:06

标签: python pandas row

我仍在学习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,)

您能以其他方式帮助我访问这些值或查找最常见的相似序列吗?

在此先感谢您的帮助。 问候 亚历克斯

1 个答案:

答案 0 :(得分:0)

尝试使用此:

  

DataFrame。模式(轴= 0,numerical_only = False,dropna = True)[源代码]

     

获取沿选定轴的每个元素的模式。

     

一组值的模式是最常出现的值。它   可以是多个值。

     

{0或“索引”,1或“列”},默认为0

     

搜索模式时要迭代的轴:

     
      
  • 0或“ index”:获取各列的模式
  •   
  • 1或“列”:获取每一行的模式
  •   
     

仅数字布尔型,默认为False

     

如果为True,则仅适用于数字列。

     

dropna bool,默认为True

     

不考虑NaN / NaT的计数。

Source