在DataFrame中找到最频繁的组合

时间:2020-08-03 12:15:35

标签: python pandas

我有一个包含两列FromTo的DataFrame,我需要知道位置FromTo的最常见组合。

示例:

From        To
------------------
Home        Office
Home        Office
Home        Office
Airport     Home
Restaurant  Office

3 个答案:

答案 0 :(得分:2)

如果顺序很重要:

GeometryReader {reader in
    Text(self.text)
        .font(Font.system(size: 60.0 * reader.size.height / 80))
        .minimumScaleFactor(0.15)
        .lineLimit(1)
        .background(Color.blue)
}

一次性为您提供所有出现的事件。只需取最大即可找到最大的出现。

如果顺序确实重要,请先对以下值进行排序:

df.loc [:,:] = np.sort(df.values,axis = 1)#如果df仅由FROM和ADN列组成。

答案 1 :(得分:1)

您可以将两列分组在一起,对每对的出现次数进行计数,然后根据此计数对对进行排序。

以下代码可以完成这项工作:

df.groupby(["From", "To"]).size().sort_values(ascending=False)

,对于该问题的示例,它返回:

From        To
-----------------------
Home        Office    3
Restaurant  Office    1
Airport     Home      1

答案 2 :(得分:1)

IIUC,SeriesGroupBy.value_countsSeries.idxmax

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "Countries"
    navigationController?.navigationBar.prefersLargeTitles = true
    navigationController?.navigationBar.barTintColor = UIColor.blu
    tabBarController?.tabBar.tintColor = UIColor.white
    view.backgroundColor = .white
}

输出

df.groupby('From')['To'].value_counts().idxmax()

通常('Home', 'Office') groupby.value_counts

另一种方式:

groupby.size

df.apply(tuple, axis=1).value_counts().idxmax()

输出

df.apply(tuple, axis=1).mode()