【发布时间】:2013-04-03 02:50:44
【问题描述】:
如果满足某些条件,我想提取当前存储在 (row + 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"]]
【问题讨论】:
-
如果你想使用列表推导的结果作为索引,你应该使用:
df[[x for x in df['shift'] if df["MA10"]>df["MA100"]]],但我认为这会引发一些异常。请发布您的示例数据和所需的结果。 -
@HYRY 感谢您的评论。我发布了一个指向我的示例数据的链接。我在发布之前使用了您的建议,并得到了我提到的“无效语法”错误。
-
@user1374969:数一下HYRY的建议中括号的个数,再数你的个数。
-
@DSM 谢谢。如果我选择 HYRY,我会收到 ValueError:具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all() python 不知道这是按位比较还是整列比较。
-
这就是 HYRY 所说的“引发一些异常”的意思。您的尝试既有语法问题,也有接口问题。
标签: python-2.7 pandas dataframe