让熊猫设置放大吧

时间:2015-09-23 20:42:11

标签: python pandas

从版本0.13开始,可以通过引用.loc或.ix中尚未包含在数据帧中的索引来附加到数据帧。请参阅documentation

然后我很困惑为什么这条线路失败了:

all_treatments.loc[originalN:newN,:]    = all_treatments.loc[0:newrowcount,:]

这会生成ValueError:

ValueError: could not broadcast input array from shape (12) into shape (0)

此处all_treatments.shape = (53, 12)originalN = 53newN = 64all_treatments.loc[originalN:newN,:].shape = (0,12)all_treatments.loc[0:newrowcount,:].shape = (12,12)

在这里设置放大的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您只能通过放大使用单行或列进行设置。您正在设置范围。

  

.loc / .ix / []操作可以在为该轴设置不存在的时执行放大。

对于您的使用,类似这样的东西应该可以扩展具有新空白行的数据框:

df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
>>> df
    a   b
0   1   4
1   2   5
2   3   6

new_row_count = 2
for new_row, old_row in enumerate(range(new_row_count), start=len(df)):
    df.ix[new_row] = None

>>>df
    a   b
0   1   4
1   2   5
2   3   6
3   NaN NaN
4   NaN NaN

如果你想从原始数据帧中复制数据,我通常会连接。

df = pd.concat([df, df.iloc[:2, :]], ignore_index=True)