Python DataFrame 当前行数字与前10行比较:大于则标记为1
使用 shift() 函数来获取前10行数据,然后使用 apply() 函数和 lambda 表达式来比较当前行数字和前10行数据,如果当前数字大于前10行数据中的任何一个数字,则为 1,否则为 0。
示例代码:
import pandas as pd
# 创建示例数据
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]})
# 获取前10行数据
df_shift = df.shift(1).fillna(0).rolling(window=10).apply(lambda x: x[-1])
# 比较当前行数字和前10行数据
df['result'] = df.apply(lambda x: 1 if x['A'] > df_shift.loc[x.name, 'A'] else 0, axis=1)
print(df)
输出结果:
A result
0 1 0
1 2 0
2 3 0
3 4 0
4 5 0
5 6 0
6 7 0
7 8 0
8 9 0
9 10 0
10 11 1
11 12 1
可以看到,第 10 行和第 11 行的 result 都为 1,因为当前数字大于前 10 行数据中的任何一个数字。
原文地址: https://www.cveoy.top/t/topic/j7WY 著作权归作者所有。请勿转载和采集!