gpt4 book ai didi

python - Pandas :如何测试结果?

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:38 26 4
gpt4 key购买 nike

假设您有一个简单的数据框

   low_signal  high_signal  condition  prevision
0 1.2 1.3 1 1.7
1 1.7 1.8 1 1.8
2 1.9 2.0 1 1.9
3 1.6 1.7 -1 1.5
4 1.3 1.4 -1 1.4

现在我想研究我的预测是否正确,如果正确我想知道时间(在这种情况下我们可以说它等于索引)

我的第一个条件

if df.condition == 1

第二个是检查 df.prevision 是否会低于或等于 df.low_signal

如果条件为真则

return is the index (in study) of the df.predicted - the index of df.low_signal


low_signal high_signal condition prevision verification
0 1.2 1.3 1 1.7 1
1 1.7 1.8 1 1.8 1
2 1.9 2.0 1 1.9 0
3 1.6 1.7 -1 1.5 1
4 1.3 1.4 -1 1.4 0

那只是为了 df.condition == 1

对于 df.condition == -1几乎相同,但检查的是 df.prevision 是否会大于或等于 df.high_signal

最佳答案

一个简单的解决方法:

In [18]:

df['verification'] = ((df['high_signal'] <= df['prevision']) & (df['condition'] == 1)) \
| ((df['low_signal'] <= df['prevision']) & (df['condition'] == -1))

In [19]:

df
Out[19]:
low_signal high_signal condition prevision verification
0 1.2 1.3 1 1.7 True
1 1.7 1.8 1 1.8 True
2 1.9 2.0 1 1.9 False
3 1.6 1.7 -1 1.5 False
4 1.3 1.4 -1 1.4 True

可能你知道在 python 中 True 和 False 对应于 1 和 0,但是如果你想将 verification 列视为 int,只需执行以下操作:

In [20]:

df['verification'] = df['verification'].astype(int)

希望对您有所帮助。

编辑:我根据您的评论更新了答案。我不太了解“功能要求”,但无论如何,如果您有更复杂的操作,您可以使用 pandas' apply

你的情况有点棘手,因为:

  • 您想在apply 函数中访问索引,但我认为您做不到
  • 您想遍历整个数据框

但是无论如何,解决您在评论中输入的表达式,您可以先在数据框中添加一个包含索引副本的列,

In [27]:

df['index_cp'] = df.index

然后使用apply函数,

In [28]:

len_df = len(df)

def f(x):
for n in range(len_df):
if x.condition == 1 & (x.prevision <= df.low_signal[n]):
return n - x.index_cp

df.apply(f, axis=1)
Out[28]:
0 1
1 1
2 0
3 NaN
4 NaN
dtype: float64

可能您需要修改功能,但正如我所说,我没有得到“功能” View ,我刚刚实现了您发布的内容。希望对您有所帮助。

关于python - Pandas :如何测试结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31235228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com