我需要创建一个包含DataFrames列的DataFrame。列中的DataFrames有不同的大小,我得到了一个StopIteration异常。当DataFrames的大小相同时,就不会发生这种情况。我知道Panel更适合这种情况,但在这种情况下我需要一个DataFrame。
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”中分别删除“3”和“6”项,则可以很好地工作。你知道我该如何做到这一点吗?
发布于 2013-07-31 03:17:34
这不是一个好主意,你会失去所有的效率,因为事情被当作object数据类型处理,操作将会非常慢(因为操作不能通过c级的基类型来完成,比如object/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 thirteenhttps://stackoverflow.com/questions/17954520
复制相似问题