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)
这是我的方法
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)