python - 在 pandas 和 NDFrame 中找到相似的序列(逐行)
问题描述
我仍在学习 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,numeric_only=False,dropna=True)[来源]
获取沿选定轴的每个元素的模式。
一组值的众数是出现频率最高的值。它可以是多个值。
轴:{0 或“索引”,1 或“列”},默认 0
搜索模式时要迭代的轴:
- 0 或 'index' : 获取每列的模式
- 1 或 'columns' : 获取每一行的模式
numeric_only : bool,默认为 False
如果为 True,则仅适用于数字列。
dropna : bool,默认为 True
不要考虑 NaN/NaT 的计数。
推荐阅读
- php - php 开关未按预期运行
- python - 使用 plotly express 绘制 value_counts() 饼图
- c++ - C ++:Char指针指向char指针数组到char数组
- java - 尝试提示输入时输入值保持为 0
- amazon-web-services - 在 Amazon Lightsail 中安装 SSL
- ruby-on-rails - 如何将操作文本附件的验证从 javascript 移动到模型
- javascript - 在 mongodb 帖子标题之间插入连字符
- dialogflow-es - Dialogflow 参数和实体
- javascript - 如何使 NextJS 中的页面路径不区分大小写
- macos - ModuleNotFoundError 尽管使用 pip 安装