pandas - 将行中的每个值与 pandas 数据框中的其他行配对

标签 pandas dataframe python-3.8

我有一个 500 行的数据框,排序如下:

Col1    Val1
asd     0.27
pqer    0.37
psdf    0.54

我尝试将 Col1 的每个值与 Col1 中具有更高 Val1 的另一行配对,以获得以下列表:

[['asd', 'pqer'], ['asd','psdf'],['pqer','psdf']]

我不知道该怎么做。

最佳答案

尝试 self 合并和过滤:

df.merge(df, how='cross')\
  .query('Val1_x < Val1_y')[['Col1_x','Col1_y']]\
  .to_numpy().tolist()

输出:

[['asd', 'pqer'], ['asd', 'psdf'], ['pqer', 'psdf']]

关于pandas - 将行中的每个值与 pandas 数据框中的其他行配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70148704/

相关文章:

python - 在 Pandas 的多级索引上使用 cumsum 方法

python - 生成多个 Pandas 数据框

r - 在 r 中读取 csv 时将列名称添加到数据框

r - 计算每列 tidyverse 中的非零值

python - 使用 Tortoise-ORM 在 FastAPI 中进行测试

python - 属性错误 : 'NoneType' object has no attribute 'time' paramiko

jupyter-notebook - 如何使用 conda 命令或 Jupyter Notebook 安装 pydataset

pandas - 我们可以展开 pandas 列中的列表吗

python - “系列”对象是可变的,因此它们不能被散列错误调用 to_csv

python - 如何通过将列的值与没有迭代的字符串进行比较来获取数据帧的索引