gpt4 book ai didi

python - 如果其他列满足某些条件,如何打印不同列中的值?

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:49 25 4
gpt4 key购买 nike

如果其他列中满足某些条件,我需要打印不同列中的值。

df 由 4 列组成:年份、gdp、差值和信号

df=pd.read_excel("file.xls", names = ["year","GDP"])
gdp["diff"] = gdp["GDP"].diff(1)
signal = gdp["diff"].clip(lower = -1.0, upper=1.0)
gdp["signal"] = signal

负值信号为 -1,正值信号为 +1。

条件是我必须打印连续 2 个负周期的年份。

rec_start=(gdp["signal"]==-1) & (gdp["signal"].shift(-1)==-1)
gdp["start"]=rec_start # which gives a boolean mask

rec和start是一样的

     year      GDP   diff  signal  start
0 1999q4 12323.3 NaN NaN False
1 2000q1 12359.1 35.8 1.0 False
2 2000q2 12592.5 233.4 1.0 False
3 2000q3 12607.7 15.2 1.0 False
4 2000q4 12679.3 71.6 1.0 False
5 2001q1 12643.3 -36.0 -1.0 False
6 2001q2 12710.3 67.0 1.0 False
7 2001q3 12670.1 -40.2 -1.0 False
8 2001q4 12705.3 35.2 1.0 False
9 2002q1 12822.3 117.0 1.0 False

现在我只需要找出正确的语法来打印 2 个连续 True 的年份行。

尝试使用

foo=gdp.ix[(gdp["signal"]==-1) & (gdp["signal"].shift(-1)==-1)]["year"]。国际劳工组织[0]
打印(foo)

成功了。

非常感谢任何帮助!

最佳答案

IIUC 这应该有效:

df.year[np.where((df.signal==-1),(df.signal==df.signal.shift‌​()),0).astype('bool'‌​)]

关于python - 如果其他列满足某些条件,如何打印不同列中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47157878/

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