以下是一个示例代码,可以实现您的要求:

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。您可以尝试修改示例数据集中的值,以验证代码的正确性。

Python Pandas Dataframe: 比较当前行数值与前 30 行数据

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

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