Question:个 我正在处理一个Python项目,其中有一个包含两列的数据集:"Big List"和"Small List".我需要将"小列表"列中的值与"大列表"列中的值进行比较,并相应地对它们进行排序.如果在"Big List"列中找到"Small List"列中的值,我希望对"Small List"列中的相应行进行排序.

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

Big List Small List
10 20
20 30
30 60
40 0
50 0
60 0
20 0

在这个场景中,我打算将"小列表"列中的每个值与"大列表"列中的值进行比较.然后,我将在"大列表"列中的相应值匹配的同一行的"小列表"中对这些值进行排序.

What I want:

Big List Small List
10 0
20 20
30 30
40 0
50 0
60 60
20 20

What I've Tried:个 我已经研究过使用循环和条件语句,但我在弄清楚如何有效地比较和排序这两列之间的值时遇到了麻烦.

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相关问答推荐

如何在Django中创建两个不同权限的用户?

在Python中从mySQL获取多行

替换Pandas中组下的列值

将f-字符串放置在f-字符串内

Django 3.2/Django-cms 3.11:查找错误:型号帐户.客户用户未注册

为什么我的Selenium脚本在密码元素上失败?

我们可以在每个可以使用 Pandas Join 的用例中使用 Pandas merge 吗?

公开数据中的卫星图像网页抓取优化

如何根据索引子列表对元素列表进行分组或批处理?

Pandas matplotlib:条形图占总数的百分比

Python多进程:运行一个类的多个实例,将所有子进程保留在内存中

Python:获取未绑定的类方法

保存 StandardScaler() 模型以用于新数据集

django.core.exceptions.ImproperlyConfigured

Pylint 给我最后的新行丢失

判断 dict.items() 中的成员资格的时间复杂度是多少?

ImportError:无法在 PyQt5 中导入名称QStringList

为什么中断比引发异常更快?

如何从 Python 3 导入 FileNotFoundError?

在 macbook pro M1 上安装 Tensorflow 时出现zsh:非法硬件指令 python