如何在定义位置中将long数组追加到数据帧



我想在定义的位置将一些numpy数组附加到数据帧。这是我试图解释我的问题的例子。

假设我有这样的数据帧:

dfr  = pd.DataFrame()
cols = ['a','b','c','d','e','f']
dfr  = pd.DataFrame(columns = cols) 

和这个数组:

vv = [0., 1., 2., 3.]

我想把它附加在第2列和第5列之间。这是可能的,在一个简单的方法。

我试过这样做:

dfr.loc[0,2:5] = vv[:]

这不起作用。我正在尝试其他的解决办法,但没有一个适合我。

有什么建议吗?

vv中有4个元素,但dfr.loc[0,2:5]中只有3个元素。请运行dfr.loc[0,1:5] = vv[:]dfr.loc[0,2:6] = vv[:]

2:5意味着2,3和4个索引,但列表有4个值,这就是为什么你会得到错误时,试图使用上面的代码

dfr.loc[0,2:5] = vv[:]
ValueError: could not broadcast input array from shape (4,) into shape (3,)

如果形状匹配,那么就可以了:

dfr.loc[0,2:] = vv[:]
a    b    c    d    e    f
0  NaN  NaN  0.0  1.0  2.0  3.0

然而,你会得到FutureWarning而尝试以上,你可以使用.iloc来摆脱警告:

dfr.iloc[0,2:] = vv[:]

最新更新