抱歉,如果这个问题之前已经回答过,但我浏览了几个以前回答过的问题,但无法自己弄清楚。
到目前为止,我有:
df = pd.read_csv("CSVFILE.csv")
df_close = pd.DataFrame(df.Close)
我的csv文件看起来像:
Open High Low Close Volume
133.795 137.610 132.905 137.275 165822.375
我想检查开盘价是否在收盘价的 .200 以内。即:如果开盘价为 133.795,收盘价在 133.995 和 133.595 之间,我希望程序告诉我。
非常感谢
你也可以
试试这个: 将 numpy 导入为 NP
df.loc[:,'new_column'] = np.where((df['Open'] <= df['Close'] + 0.2) & (df['Open'] >= df['Close'] - 0.2), 'In range', 'Not in range')
要仅过滤范围内的值:
df[df['new_column'] == 'In range']
Open High Low Close Volume new_column
1 133.795 137.61 132.905 133.994 165822.375 In range
2 133.795 137.61 132.905 133.596 165822.375 In range
使用 Series.between
:
print (df)
Open High Low Close Volume
0 133.795 137.61 132.905 137.275 165822.375
1 133.795 137.61 132.905 133.994 165822.375
2 133.795 137.61 132.905 133.596 165822.375
m = df['Close'].between(df['Open'] - .2, df['Open'] + .2)
print (m)
0 False
1 True
2 True
dtype: bool
或:
a = df['Open'] - .2
b = df['Open'] + .2
m = (df['Close'] >= a ) & (df['Close'] <= b)