Python pandas Multindex列

2024-04-25 00:25:10 发布

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

首先,我在jupyter笔记本中使用python3.50。在

我想创建一个数据框来显示报表中的一些数据。我希望它有两个索引列(如果这个术语不正确,请原谅。我不习惯和熊猫一起工作)。在

我有一个可以工作的示例代码:

frame = pd.DataFrame(np.arange(12).reshape(( 4, 3)), 
                  index =[['a', 'a', 'b', 'b'], [1, 2, 1, 2]], 
                  columns =[['Ohio', 'Ohio', 'Ohio'], ['Green', 'Red', 'Green']])

但当我试图把它带到我的案例中时,它给了我一个错误:

^{pr2}$

有什么想法吗?我不明白为什么这个例子有用,而我的例子却没有。:秒

提前感谢:)。在


Tags: 数据代码示例dataframe报表np笔记本jupyter
2条回答

您的代码和示例之间有一个主要区别:示例传递一个numpy数组作为输入,而不是一个嵌套列表。实际上,在列表中添加np.array(...)就可以了:

cell_rise_Inv= pd.DataFrame(
        np.array([[0.00483211, 0.00511619, 0.00891821, 0.0449637, 0.205753], 
                  [0.00520049, 0.00561577, 0.010993, 0.0468998, 0.207461],
                  [0.00357213, 0.00429087, 0.0132186, 0.0536389, 0.21384],
                  [-0.0021868, -0.0011312, 0.0120546, 0.0647213, 0.224749],
                  [-0.0725403, -0.0700884, -0.0382486, 0.0899121, 0.313639]]), 
        index=[['transition [ns]'] * 5,
               [0.0005, 0.001, 0.01, 0.1, 0.5]],
        columns=[['capacitance [pF]'] * 5,
                 [0.01, 0.02, 0.05, 0.1, 0.5]])

我缩短了索引中重复的字符串,并交换了索引级别的顺序,但这些都不是显著的更改。在

编辑 做了一些调查。如果传入一个嵌套列表(没有np.array调用),则调用将在没有columns的情况下工作,即使{}是一个1D列表。由于某些原因,除非输入是ndarray,否则两个元素的嵌套列表不会被解释为多索引。在

基于这个问题,我向熊猫提交了issue #14467。在

这似乎并不一致。我将使用pd.MultiIndex构造函数from_arrays

idx = pd.MultiIndex.from_arrays([['transition [ns]'] * 5,
                                 [0.0005, 0.001, 0.01, 0.1, 0.5]])
col = pd.MultiIndex.from_arrays([[0.01, 0.02, 0.05, 0.1, 0.5],
                                 ['capacitance [pF]'] * 5])

cell_rise_Inv= pd.DataFrame([[0.00483211, 0.00511619, 0.00891821, 0.0449637, 0.205753], 
                             [0.00520049, 0.00561577, 0.010993, 0.0468998, 0.207461],
                             [0.00357213, 0.00429087, 0.0132186, 0.0536389, 0.21384],
                             [-0.0021868, -0.0011312, 0.0120546, 0.0647213, 0.224749],
                             [-0.0725403, -0.0700884, -0.0382486, 0.0899121, 0.313639]], 
                            index=idx,
                            columns=col)
cell_rise_Inv

enter image description here

相关问题 更多 >