python-3.x - 比较和排序 DataFrame 两列中的值并在 python 中的同一行中排序

标签 python-3.x pandas

问题: 我正在开发一个 Python 项目,其中有一个包含两列的数据集:“大列表”和“小列表”。我需要将“小列表”列中的值与“大列表”列中的值进行比较,并相应地对它们进行排序。如果在“大列表”列中找到“小列表”列中的值,我想对“小列表”列中的相应行进行排序。

例如,假设我有以下数据:

<表类=“s-表”> <标题> 大列表 小列表 <正文> 10 20 20 30 30 60 40 0 50 0 60 0 20 0

在这种情况下,我打算将“小列表”列中的每个值与“大列表”列中的值进行比较。然后,我将在与“大列表”列中的相应值匹配的同一行中的“小列表”中对这些值进行排序。

我想要什么:

<表类=“s-表”> <标题> 大列表 小列表 <正文> 10 0 20 20 30 30 40 0 50 0 60 60 20 20

我尝试过的: 我研究过使用循环和条件语句,但我无法弄清楚如何有效地比较和排序这两列之间的值。

import pandas as pd

data = {'Big List': [10, 20, 30, 40,50,60,20], 'Small List': [20,30,60]}
df = pd.DataFrame(data)

# Loop through rows and compare values
for index, row in df.iterrows():
    if row['Small List'] in df['Big List']:
        # Sort the row in the "Small List" column
        # Stuck here

df

最佳答案

屏蔽大列表中不属于小列表的值

m = df['Big List'].isin(df['Small List'])
df['Small List'] = df['Big List'].where(m, 0)

   Big List  Small List
0        10           0
1        20          20
2        30          30
3        40           0
4        50           0
5        60          60
6        20          20

关于python-3.x - 比较和排序 DataFrame 两列中的值并在 python 中的同一行中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76935826/

相关文章:

python - Pandas:向多索引表添加新行不起作用

python-3.x - 如何确定 pip3 为非用户安装安装二进制文件/脚本的位置?

python-3.x - 即使在任何时候都不访问e,都将异常定义为变量(作为e除外的异常)的最佳实践吗?

python - 如何删除链接的开头并在python中添加正斜杠

python - 交换 2 个数据框列中的单元格字符串

python - 创建具有不同大小列的 Pandas Dataframe

python - 在单个数据框中为不同的项目创建持续时间

python - 如何从 matplotlib ginput 中切片列表

python-3.x - tf.metrics.accuracy 未按预期工作

python - 如何在Python3中沿着第三维堆叠两个以上的numpy图像数组