问题: 我正在开发一个 Python 项目,其中有一个包含两列的数据集:“大列表”和“小列表”。我需要将“小列表”列中的值与“大列表”列中的值进行比较,并相应地对它们进行排序。如果在“大列表”列中找到“小列表”列中的值,我想对“小列表”列中的相应行进行排序。
例如,假设我有以下数据:
大名单 | 小名单 |
---|---|
10 | 20 |
20 | 30 |
30 | 60 |
40 | 0 |
50 | 0 |
60 | 0 |
20 | 0 |
在这种情况下,我打算将“小列表”列中的每个值与“大列表”列中的值进行比较。然后,我将在“小列表”中与“大列表”列中的相应值匹配的同一行中对这些值进行排序。
我想要的是:
大名单 | 小名单 |
---|---|
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
屏蔽大列表中不属于小列表的值