如何在此数据框的顶部添加行。这个 是下载数据。我不能在公式中使用特定的行索引 因为第一个Datetime indice一直在变化。我不能也用 内部索引的特定标签,因为它可能是Datetime。有没有 如何推广这个?
我试过这个
df[df.index.min()[0])) - dt.timedelta(minutes=5), :] = [list to add]
但是它只在Dataframe的末尾添加一行。排序,
df.sort_index(inplace=True)
没有帮助,因为我想我在这里处理2级索引; 这可以解释为什么这条线粘在框架的底部。
A B C D E
2006-04-28 00:00:00
A 69.62 69.62 6.518 65.09 69.62
B
C
2006-05-01 00:00:00
A 71.5 71.5 6.522 65.16 71.5
B
C
2006-05-02 00:00:00
A 72.34 72.34 6.669 66.55 72.34
B
C
最终结果应如下所示:
X
是要添加的列表/数组中的元素。
A B C D E
NEWROW X1 X2 X3 X4 X5
2006-04-28 00:00:00
A 69.62 69.62 6.518 65.09 69.62
B
C
2006-05-01 00:00:00
A 71.5 71.5 6.522 65.16 71.5
B
C
2006-05-02 00:00:00
A 72.34 72.34 6.669 66.55 72.34
B
C
答案 0 :(得分:1)
sort_index
和sortlevel
对我来说不与Multiindex
合作:
所以你可以使用少量hack
- 第一个reset_index
第二个Stats
,然后sort_index
和最后set_index
返回参数append=True
:
df1 = df1.sort_index()
df1.loc[((df1.index.min()[0]) - dt.timedelta(minutes=5), 'SUM'),:] =
df1.loc[(slice(None), slice('price')),:].sum()
df1 = df1.reset_index('Stats')
df1 = df1.sort_index(axis=0).set_index('Stats', append=True)
print (df1)
A B C D E
Date Stats
2006-04-27 23:55:00 SUM 213.46 213.46 19.709 196.80 213.46
2006-04-28 00:00:00 price 69.62 69.62 6.518 65.09 69.62
std NaN NaN NaN NaN NaN
weight NaN NaN NaN NaN NaN
2006-05-01 00:00:00 price 71.50 71.50 6.522 65.16 71.50
std NaN NaN NaN NaN NaN
weight NaN NaN NaN NaN NaN
2006-05-02 00:00:00 price 72.34 72.34 6.669 66.55 72.34
std NaN NaN NaN NaN NaN
weight NaN NaN NaN NaN NaN