Python数据帧条件索引值选择

2024-03-29 06:50:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类似以下的数据帧:

                       close_price  short_lower_band  long_lower_band
Equity(8554)               180.530        184.235603       183.964306
Equity(2174)               166.830        157.450404       157.160282
Equity(23921)              124.670        127.243468       126.072039
Equity(26807)              117.910        108.761587       107.190081
Equity(42950)              108.070         97.491851        96.868036
Equity(4151)                97.380         98.954371        98.335786

我想生成一个指数值列表,其中“收盘价”小于“短\低\波段”,小于“长\低\波段”。因此,从上面的示例数据框中,我们可以得到:

long_secs = [Equity(8554), Equity(23921), Equity(4151)]

任何帮助找出如何做到这一点将不胜感激。你知道吗


Tags: 数据示例列表closeband波段lowerprice
1条回答
网友
1楼 · 发布于 2024-03-29 06:50:11

试试这个:

In [334]: df
Out[334]:
               close_price  short_lower_band  long_lower_band
Equity(8554)        180.53        184.235603       183.964306
Equity(2174)        166.83        157.450404       157.160282
Equity(23921)       124.67        127.243468       126.072039
Equity(26807)       117.91        108.761587       107.190081
Equity(42950)       108.07         97.491851        96.868036
Equity(4151)         97.38         98.954371        98.335786

In [335]:

In [335]: df[(df.close_price < df.short_lower_band) & \
   .....:    (df.close_price < df.long_lower_band)].index.values
Out[335]: array(['Equity(8554)', 'Equity(23921)', 'Equity(4151)'], dtype=object)

或者如果您需要一个普通列表而不是numpy数组:

In [336]: df[(df.close_price < df.short_lower_band) & \
   .....:    (df.close_price < df.long_lower_band)].index.tolist()
Out[336]: ['Equity(8554)', 'Equity(23921)', 'Equity(4151)']

相关问题 更多 >