gpt4 book ai didi

python-2.7 - 数据框中的 Pandas 列表理解

转载 作者:行者123 更新时间:2023-12-03 11:21:18 25 4
gpt4 key购买 nike

如果满足某些条件,我想提取当前存储在(行 + 1)中的第二天开盘价并将其存储在新列中。

df['b']=''

df['shift']=''

df['shift']=df['open'].shift(-1)

df['b']=df[x for x in df['shift'] if df["MA10"]>df["MA100"]]

最佳答案

有几种方法。使用 apply :

>>> df = pd.read_csv("bondstack.csv")
>>> df["shift"] = df["open"].shift(-1)
>>> df["b"] = df.apply(lambda row: row["shift"] if row["MA10"] > row["MA100"] else np.nan, axis=1)

产生
>>> df[["MA10", "MA100", "shift", "b"]][:10]
MA10 MA100 shift b
0 16.915625 17.405625 16.734375 NaN
1 16.871875 17.358750 17.171875 NaN
2 16.893750 17.317187 17.359375 NaN
3 16.950000 17.279062 17.359375 NaN
4 17.137500 17.254062 18.640625 NaN
5 17.365625 17.229063 18.921875 18.921875
6 17.550000 17.200312 18.296875 18.296875
7 17.681250 17.177500 18.640625 18.640625
8 17.812500 17.159375 18.609375 18.609375
9 17.943750 17.142813 18.234375 18.234375

对于更矢量化的方法,您可以使用
>>> df = pd.read_csv("bondstack.csv")
>>> df["b"] = np.nan
>>> df["b"][df["MA10"] > df["MA100"]] = df["open"].shift(-1)

或我的首选方法:
>>> df = pd.read_csv("bondstack.csv")
>>> df["b"] = df["open"].shift(-1).where(df["MA10"] > df["MA100"])

关于python-2.7 - 数据框中的 Pandas 列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15939811/

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