使用 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 行数据中的任何一个数字。

Python DataFrame 当前行数字与前10行比较:大于则标记为1

原文地址: https://www.cveoy.top/t/topic/j7WY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录