【发布时间】:2017-12-26 16:43:59
【问题描述】:
我有一个以下熊猫表(示意图):
现在我想对其进行排序...
...以这样的方式:
Dataframe 按名称排序
具有相同名称和相似列表元素的行被组合在一起。 “相似”是指相邻的两个行应该有一个列表元素,其中这些行之间的列表元素的差异在一定的阈值之内(这里我选择了 5)。
换句话说: 对于任何相邻的两行,如果第一行存在一个元素,第二行存在一个元素,且差异在阈值之内,则应将它们分组在一起。
- 应该重命名这些组。
结果应该是这样的:
编辑: 我尝试了什么: df.sort_values(['name'],ascending=False).groupby('List')
当然,这是行不通的,因为每个列表都是一个新组,因为我无法引入“相似性”。
编辑2: 这是重现熊猫数据框的代码:
import pandas as pd
df = pd.DataFrame({
'List' : [[2,4],[3,5],[16,19],[4,1],[14,15],[300,20]],
'Name' : ["A","C","A","A","A","A"]})
【问题讨论】:
-
你试过group_by()
-
@DoHe 请看看我编辑的问题
-
您愿意将此图片转换为可重现的代码示例吗?
-
认为您应该详细说明 2。“相似”是指相邻的两个行应该有一个列表元素,其中这些行之间的列表元素的差异在一定的阈值内(这里我选择了 5)。
-
@coldspeed 完全没有,我加了。
标签: python python-3.x pandas