python dataframe 当前行数字与前5行数据比较如果当前数字大将为1
可以使用 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。最后将结果添加到原始数据框中的新列中
原文地址: https://www.cveoy.top/t/topic/cHKD 著作权归作者所有。请勿转载和采集!