【发布时间】:2018-08-22 21:57:38
【问题描述】:
我有以下数据集,其中每一行都有 Date 列和 Values 列。它同时具有 +ve 和 -ve 值。我必须计算最后 150 行的所有正值。在每一行。所以第 150 行将有空值。然后,以下行将具有最后 150 个 +ve 行的计数,类似地,-ve 列将填充该行之前的负值计数。
我尝试使用:
def get_count_of_all_150_positive_rows_before_this_row(row):
df1 = row.tail(2)
df1 = df1.to_frame()
print(df1.tail())
# if df1['positive_values'] > 0:
return (df1['positive_values'].count())
df.apply(get_count_of_all_150_positive_rows_before_this_row, axis=1)
数据集:
Date values positive_values negative_values
01/01/08 0.12344
02/01/08 -0.12344
03/01/08 -0.1234433
04/01/08 -0.12344
05/01/08 -0.1234433
06/01/08 -0.12344
07/01/08 -0.1234433
08/01/08 -0.12344
09/01/08 -0.1234433
10/01/08 0.12344
11/01/08 -0.12344
12/01/08 -0.1234433
13/01/08 -0.12344
14/01/08 -0.1234433
15/01/08 -0.12344
16/01/08 -0.1234433
17/01/08 -0.12344
18/01/08 -0.1234433
19/01/08 0.12344
【问题讨论】:
-
你可以为 +-5 添加输出,而不是 150? 15-20行也应该足够了。谢谢。
-
我已经截断了您的数据.. minimal 示例不需要您的所有行。我们可以用 5 而不是 150 来演示逻辑。
-
@Jason,请提供所需的输出,假设最后 5 行,给定您问题中的截断数据。