如何从pandas dataframe获取单个值?

2024-05-08 07:30:41 发布

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

我对熊猫不熟悉。在

我试图根据另一列中的值获取特定值。但是输出是作为一个值的列表而不是一个值,虽然我可以试着做这个,但我想知道我做错了什么。 `价格

OpenInterest  Volume  BidPrice  OfferPrice  StrikePrice  prem_ratio
6     8,296,000   3,934      4.15        4.25        100.0         3.0   
7    10,872,000   3,981      1.60        1.65        110.0         2.0   
8     8,692,000   1,302      0.70        0.75        120.0         2.0   
9     5,524,000   1,118      0.35        0.40        130.0         1.0   
10    3,108,000     110      0.20        0.25        140.0         1.0   
11    2,692,000      55      0.10        0.15        150.0         1.0   
12    1,908,000       4      0.05        0.10        160.0         0.0   
13    1,176,000       8      0.05        0.10        170.0         0.0   
14      920,000       6      0.05        0.10        180.0         0.0   
15      192,000       1      0.05        0.10        190.0         0.0   
16      336,000       7      0.05        0.10        200.0         0.0   
17      168,000       2      0.00        0.10        210.0         0.0   
18       24,000       2      0.00        0.10        220.0         0.0   
19            0       0      0.00        0.10        230.0         0.0   
20            0       0      0.00        0.15        240.0         NaN   

我尝试了以下方法:

^{pr2}$

我得到以下输出:

[ 100.] 
[ 110.  120.]
[ 110.  120.]

我做了prem_ratio

prem_ce['prem_ratio'] = prem_ce['BidPrice'] / prem_ce['OfferPrice'].shift(-1) 

现在我试图将用于计算prem_ratioStrikePrice都放入variables。在

我不明白为什么我得到一个list,而第一个list只有一个值,而另外两个有两个值。在

编辑--

我希望程序循环遍历每一行,并在条件满足时给我1个值。i、 e.100.0,110.0,120.0,3个回路。在

我预期输出是

第一个循环:ce_strike_sell = 100.0

第二个循环:ce_strike_sell = 110.0

第三个循环:ce_strike_sell = 120.0

我不确定是否有办法做到这一点,因为我对熊猫还很陌生


Tags: 方法列表价格nanlistceratiovolume
3条回答

我不明白为什么我会得到一个列表,而第一个列表只有一个值,而其他两个值只有两个值。

对于每一行,您的逻辑如下所示:

  1. 如果ratio_row >= 2,找到所有比率,其中ratio == ratio_row,其中{}是该行的比率。在
  2. 其中有一行ratio == 3,但有2行ratio == 2。因此,第一行将得到1个值,下两行将得到2个值。在

现在还不清楚为什么每行只需要一个值,或者期望的输出是什么。在

获取列表的原因是,因为prem_ce['StrikePrice'][ratio_row]是一个序列,而属性values得到了序列的值列表。在

更简单的是:

prem_ce[prem_ce['prem_ratio'] >= 2]['StrikePrice']

又是一个系列。在

发生这种情况的原因是:

ratio_row = prem_ce.index[prem_ce['prem_ratio'] == ratio]

正在选择prem_ratio等于ratio的所有索引,并且在数据帧中有多行具有相同的prem_ratio

相关问题 更多 >

    热门问题