问题: 我正在开发一个 Python 项目,其中有一个包含两列的数据集:“大列表”和“小列表”。我需要将“小列表”列中的值与“大列表”列中的值进行比较,并相应地对它们进行排序。如果在“大列表”列中找到“小列表”列中的值,我想对“小列表”列中的相应行进行排序。
例如,假设我有以下数据:
在这种情况下,我打算将“小列表”列中的每个值与“大列表”列中的值进行比较。然后,我将在与“大列表”列中的相应值匹配的同一行中的“小列表”中对这些值进行排序。
我想要什么:
我尝试过的: 我研究过使用循环和条件语句,但我无法弄清楚如何有效地比较和排序这两列之间的值。
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/