尝试将行添加到dataframe时的ValueError

时间:2015-07-14 13:09:35

标签: python pandas

我正在尝试将行df[0] = [0,360, 0, 0, 0,2,3.9,100.01,100,0]添加到我的数据框df,如下所示,但得到错误ValueError: Length of values does not match length of index。我不知道为什么会这样,因为这一行有10个值,有10列。

          dt  months_to_maturity       asset_id            orig_iss_dt  \
1  2016-02-15                   6  (BINARY DATA)  1986-02-18 00:00:00.0   
2  2016-08-01                  12  (BINARY DATA)  1986-08-01 00:00:00.0   
3  2017-02-06                  18  (BINARY DATA)  1987-02-06 00:00:00.0 

              maturity_dt  pay_freq_cd  coupon  closing_price  FACE_VALUE  \
1   2016-02-15 00:00:00.0            2   9.250      105.40625         100   
2   2016-08-01 00:00:00.0            2   9.380      105.86200         100   
3   2017-02-06 00:00:00.0            2   8.450      111.42610         100

                            dt2  
1  1970-01-01 00:00:00.000000002  
2  1970-01-01 00:00:00.000000002  
3  1970-01-01 00:00:00.000000002 

谢谢

1 个答案:

答案 0 :(得分:2)

因为

df[0] = ...

是添加列而不是行的语法,因此右侧的数组应该与列的长度相同,即行数(或标量)。如果你想添加一行做

df.loc[0] = <values>

我想部分混淆来自这样一个事实:这与numpy语法相反,在某种意义上a[0] = <values>将值分配给第0行而不是列。