Python 是否有一种方法可以根据以前发生的x列中的值筛选数据帧?
我正在尝试基于数据帧进行过滤,以便在X列中的值以前没有出现过的情况下保留整行。如果它发生在我需要它将Y列中的值与第一行Y列中的值进行比较之前 例如:Python 是否有一种方法可以根据以前发生的x列中的值筛选数据帧?,python,loops,dataframe,Python,Loops,Dataframe,我正在尝试基于数据帧进行过滤,以便在X列中的值以前没有出现过的情况下保留整行。如果它发生在我需要它将Y列中的值与第一行Y列中的值进行比较之前 例如: MM Bid Sz Bid BP1 15 73.20 TWD1 15 73.15 SPAC 250 71.00 BCOM1 500 71.00 BP2 500 71.00 TWD2 500 71.00 BP3
MM Bid Sz Bid
BP1 15 73.20
TWD1 15 73.15
SPAC 250 71.00
BCOM1 500 71.00
BP2 500 71.00
TWD2 500 71.00
BP3 250 71.00
MC1 500 71.00
MC2 275 70.25
TWD3 275 70.10
MC3 150 68.00
我可能需要更多的信息来解决你的问题,但希望这能让你走 这里我制作了一个数据帧:
import pandas as pd
import numpy as np
df = pd.DataFrame(data={'X': [1,1,2,3,4,5], 'Y':['kept', 'dropped', 2, 3, 4, 5]}); df
看起来像这样
X Y
1 kept
1 dropped
2 2
3 3
4 4
5 5
然后,我在df['X']
中删除了非唯一值,并保留了值的'first'
外观:
df=df.drop_duplicates(subset=['X'],keep='first');df
现在,我的df
如下所示:
X Y
1 kept
2 2
3 3
4 4
5 5
使用drop\u duplicates
可以确保只有行中的唯一值至少保持某种逻辑程度。但是,您可能还想考虑用<代码>迭代器< /Cord>对数据帧进行循环检查,以检查唯一值并同时进行比较。这将大大有助于提高效率
最后,如果这不是您想要的,请让我知道和/或提供更多信息。我很乐意帮忙 使用df.删除重复项
。在您的示例中,如果要删除前一行中有Bid
值的行,您可以调用.drop\u duplicates(subset=“Bid”)
。这里,keep
关键字参数具有默认值“first”
,这是您想要的行为,因此无需设置它