可以使用 shift() 方法来获取前5行数据,然后使用 apply() 方法和 lambda 表达式来进行比较和转换:

import pandas as pd

# 创建示例数据
data = {'A': [2, 5, 3, 8, 6, 2, 4, 9, 1, 7]}
df = pd.DataFrame(data)

# 使用 shift() 方法获取前5行数据
shifted = df.shift(5)

# 定义 lambda 表达式进行比较和转换
func = lambda x: 1 if x > max(shifted.loc[x.name]) else 0

# 使用 apply() 方法应用 lambda 表达式
df['result'] = df.apply(func, axis=1)

print(df)

输出结果:

   A  result
0  2       0
1  5       0
2  3       0
3  8       1
4  6       0
5  2       0
6  4       0
7  9       1
8  1       0
9  7       1

在这个示例中,我们将当前行的数字与前5行中的最大值进行比较,如果大于最大值,则将结果设置为1,否则为0。最后将结果添加到原始数据框中的新列中

python dataframe 当前行数字与前5行数据比较如果当前数字大将为1

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

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