向像这样的pandas数据帧添加行有什么问题?

时间:2018-05-24 14:59:38

标签: python pandas dataframe

我正在创建一个简单的数据框,如下所示。

cache_df = pd.DataFrame(columns=['ticker', 'maturity', 'rate', 'datetime'])
cache_df = cache_df.set_index(['ticker', 'maturity'])

当我尝试添加一行时,我收到的错误是我无法理解的。谁能帮我理解为什么?

cache_df.loc[symbolName, expiry] = [rate, updateTime]

我得到了

  

ValueError:无法使用带有的多索引选择索引器进行设置   长度不同于值

并且在错误消息之后我的数据框看起来很奇怪。

Out[106]: 
                rate datetime  2016-11-18 00:00:00
ticker maturity                                   
GECC             NaN      NaN                  NaN

如果我这样做

cache_df.loc[[1,2]] = [3,4]

我得到了一个不同的错误:

  

ValueError:零大小数组到减少操作的最大值   没有身份

1 个答案:

答案 0 :(得分:1)

好的,在花了将近两个小时的谷歌搜索可能的原因后,我想出了原因。问题在于多索引。我想这里可以使用更有用的错误消息。

使用多索引数据框,loc需要是显式的。

以下代码解决了该问题。

cache_df.loc[(symbolName, expiry), :] = [rate, updateTime]