在Python pandas中将DataFrame添加到Panel

tom*_*z74 4 python dataframe pandas

我想创建具有不同数据帧的面板,我尝试编写一个函数来返回此面板.我使用一些已编写的函数createNewDf(i),它根据给定的数值从现有数据返回dataFrame.

def panelCreation():
    dp1 = Panel({})
    for i in range(1,3):
        name = 'X' + str(i)
        name = createNewDf(i)
    dp1.update(name)       # This does not work
    return dp1
Run Code Online (Sandbox Code Playgroud)

我无法找到替代方法的名称 dp1.update(name)

Cha*_*She 6

如何从DataFrame的字典中创建Panel?

In [10]: dd = {}

In [11]: for i in range(1, 3):
   ....:     name = 'X' + str(i)
   ....:     dd[name] = DataFrame(np.random.randn(3,3))
   ....:     

In [12]: Panel(dd)
Out[12]: 
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 3 (major) x 3 (minor)
Items: X1 to X2
Major axis: 0 to 2
Minor axis: 0 to 2
Run Code Online (Sandbox Code Playgroud)

所以类似于:

def panelCreation():
    dd = {}
    for i in range(1,3):
        name = 'X' + str(i)
        dd[name] = createNewDf(i)
    return Panel(dd)
Run Code Online (Sandbox Code Playgroud)

  • @ChangShe奇怪的是,不像一个字典,如果面板是空的开始(你没有用填充的`DataFrame`初始化面板),在你添加`new``DataFrame`之前,那么,当你尝试检索带有`my_panel ['new']`或`my_panel.get('new')`的`DataFrame`你只得到一个空的DataFrame(忽略DataFrame中的数据).因此在使用`[]`setter添加更多内容之前,请小心使用DataFrames初始化`Panel`. (4认同)