Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有一种方法可以根据以前发生的x列中的值筛选数据帧?_Python_Loops_Dataframe - Fatal编程技术网

Python 是否有一种方法可以根据以前发生的x列中的值筛选数据帧?

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

我正在尝试基于数据帧进行过滤,以便在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     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”
,这是您想要的行为,因此无需设置它