为Pandas多索引数据帧分配2d数组值

2024-04-26 01:31:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我的计算结果最好以Pandas多索引格式存储。为了具体的目的,让我们考虑下面的形式(尽管实际的结构是以编程方式指定的)

                        X         Y         Z       
DATE                                                      
2018-01-01 A           NaN       NaN       NaN      
           B           NaN       NaN       NaN      
           C           NaN       NaN       NaN      
2018-01-02 A           NaN       NaN       NaN       
           B           NaN       NaN       NaN      
           C           NaN       NaN       NaN       

我想把numpy数组的输出分配给一个特定的时间片。说我有

^{pr2}$

所以期望的输出是

                        X         Y         Z       
DATE                                                      
2018-01-01 A           NaN       NaN       NaN      
           B           NaN       NaN       NaN      
           C           NaN       NaN       NaN      
2018-01-02 A             1         2         3       
           B             2         2         1   
           C             4         2         3   

我试过了熊猫.索引其中j是第j个时间片。在

df.loc[pd.IndexSlice[j,:], :] = output

但那不管用。我也尝试过用iloc代替loc,但没有成功。在非多索引数据帧中,我可以将列表分配给数据帧中的特定列,而不必单独分配每个元素。有没有办法把矩阵变成多索引数据帧?在


Tags: 数据目的numpypandasdate格式编程方式
1条回答
网友
1楼 · 发布于 2024-04-26 01:31:07

你的代码运行得很好。在

演示:

In [70]: df.loc[pd.IndexSlice['2018-01-02', :], :] = output

In [71]: df
Out[71]:
                 X    Y    Z
DATE       I2
2018-01-01 A   NaN  NaN  NaN
           B   NaN  NaN  NaN
           C   NaN  NaN  NaN
2018-01-02 A   1.0  2.0  3.0
           B   2.0  2.0  1.0
           C   4.0  2.0  3.0

PS i在DATE索引列为string且为datetime数据类型时测试了这两个选项—在这两种情况下,上面的代码都正常工作。在

相关问题 更多 >