将前 N 行与熊猫列中的当前行进行比较

tip*_*epz 7 python dataframe pandas

我试图通过考虑前 n 行的值在我的 Pandas 数据框中填充一个新列。如果当前值不等于该列中过去的 n 个值中的任何一个,则应填充“N”,否则填充“Y”。

请让我知道什么是实现这一目标的好方法。

这是我的输入数据:

testdata = {'col1' :['car','car','car','bus','bus','bus','car']}
df = pd.DataFrame.from_dict(testdata)
Run Code Online (Sandbox Code Playgroud)

输入DF:

  col1
0  car
1  car
2  car
3  bus
4  bus
5  car  
6  car
Run Code Online (Sandbox Code Playgroud)

输出 DF(n=2):

  col1   Result
0  car         
1  car         
2  car      Y  
3  bus      N  
4  bus      Y  
5  bus      Y  
6  car      N 
Run Code Online (Sandbox Code Playgroud)

WeN*_*Ben 5

这是我的方法

n=2
l=[False]*n+[df.iloc[x,0] in df.iloc[x-n:x,0].tolist() for x in np.arange(n,len(df))]
df['New']=l
df
  col1    New
0  car  False
1  car  False
2  car   True
3  bus  False
4  bus   True
5  bus   True
6  car  False
Run Code Online (Sandbox Code Playgroud)