Python Pandas Dataframe: 比较当前行数值与前 30 行数据
以下是一个示例代码,可以实现您的要求:
import pandas as pd
# 创建一个示例数据集
df = pd.DataFrame({'value': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})
# 定义一个函数,用于比较当前行数字与前30行数据
def compare_with_previous_30_rows(row):
# 获取当前行的索引
index = row.name
# 如果当前行的索引小于30,则无法比较,返回0
if index < 30:
return 0
# 获取当前行的值
value = row['value']
# 获取前30行的值
previous_values = df.loc[index-30:index-1, 'value']
# 判断当前行的值是否大于前30行的最大值
if value > previous_values.max():
return 1
else:
return 0
# 应用函数到数据集的每一行,得到一个新的列
df['is_larger_than_previous_30_rows'] = df.apply(compare_with_previous_30_rows, axis=1)
# 打印结果
print(df)
输出结果如下:
value is_larger_than_previous_30_rows
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
由于示例数据集中的所有值都小于前30行的最大值,因此新的列中的所有值都为0。您可以尝试修改示例数据集中的值,以验证代码的正确性。
原文地址: https://www.cveoy.top/t/topic/j7Wo 著作权归作者所有。请勿转载和采集!