Pandas 熊猫:数据帧中的数据帧

Pandas 熊猫:数据帧中的数据帧,pandas,Pandas,我需要创建一个DataFrame,其中包含DataFrames列。列中的DataFrames大小不同,我得到一个StopIteration异常。当数据帧大小相同时,不会发生这种情况。我知道面板更适合这种情况,但在这种情况下我需要数据帧 a=pd.DataFrame({'cat1':['one','two','three'],'cat2':['four','five','six']}) b=pd.DataFrame({'cat1':['ten','eleven'],'cat2':['twelve'

我需要创建一个
DataFrame
,其中包含
DataFrames
列。列中的
DataFrames
大小不同,我得到一个
StopIteration
异常。当
数据帧
大小相同时,不会发生这种情况。我知道
面板
更适合这种情况,但在这种情况下我需要
数据帧

a=pd.DataFrame({'cat1':['one','two','three'],'cat2':['four','five','six']})
b=pd.DataFrame({'cat1':['ten','eleven'],'cat2':['twelve','thirteen']})
pd.DataFrame({'col1':{'row1':a,'row2':b}})

如果我分别从“cat1”、“cat2”中删除“三”和“六”项,那么这就可以了。你知道我怎样才能做到这一点吗

这不是一个好主意,您会失去所有的效率,因为事物被视为
对象
dtype,操作将非常缓慢(因为操作不能通过c级基本类型完成,如float/int)。更好的方法是使用多级索引,它可以很容易地包含我认为您需要的内容

In [20]: a
Out[20]: 
    cat1  cat2
0    one  four
1    two  five
2  three   six

In [21]: b
Out[21]: 
     cat1      cat2
0     ten    twelve
1  eleven  thirteen

In [22]: pd.concat([ a, b ], keys={ 'row1' : a, 'row2' : b })
Out[22]: 
          cat1      cat2
row1 0     one      four
     1     two      five
     2   three       six
row2 0     ten    twelve
     1  eleven  thirteen

我在pandas作者的《Python for Data Analysis》一书中没有提到DataFrame中的DataFrame。请问你的最终目标是什么?我有一份证券下跌的清单和一系列领域的进展。其中一些字段会生成一个表(即持有者列表或股息历史记录),我想将其与标量值(价格、pct变化、名称等)结合起来。我已经有了一个面板视图,但希望有一个整个表的单一视图。这仅仅是为了能够在代码中推广这种方法,即无论字段的形状如何,我都可以使用DF.ix['security','field']。我想唯一正确的方法就是用一个面板[安全][字段]来实现这一点。我只是在尝试泛化。还有一个选项,可以使用
面板创建分层索引的
数据帧
。to\u frame(filter\u observations=False)
。谢谢杰夫。这样做的想法是因为我需要将这些数据帧与另一组标量值组合起来。例如,第1行:DF_a,np.nan,104,105;第2行:np.nan,DF_b,234,213。假设我有Cat1、Cat2、Scalar1、Scalar2列。我想使用多索引方法仍然可以,我是否只需要在cat1/cat2的所有项中广播标量值?再次感谢您不必那么花哨
df['scalar1']=234
就可以了