如何将一个DataFrame存储在另一个DataFrame中

3

我有一个包含各种文本和数字列的DataFrame,我将其用作数据库。由于某些列可能是dtype对象,因此我还可以在单个单元格中存储更复杂的对象,例如numpy数组。

我应该如何在单元格内存储另一个DataFrame呢?

df1=pd.DataFrame([1,'a'])
df2=pd.DataFrame([2,'b'])

这个作业失败了:

df1.loc[0,0] = df2

ValueError: Incompatible indexer with DataFrame

PS. 此问题并非下方所建议的重复问题,因为我不想连接“子”数据框。


这个失败的语句只用 = 1 能否工作? - Stephen Rauch
可能是使用pandas创建DataFrame的DataFrame的重复问题。 - Deena
嵌套一个数据框的目的是什么?这听起来像是一个XY问题。考虑使用字典或数据框列表。 - Parfait
2个回答

5
你可以使用set_value:
df1.set_value(0,0,df2)

或者:

df1.iat[0,0]=df2

自从版本0.21.0以来,.set_value已经被废弃。


2
...或者 df1.at[0,0]=df2 用于标签... 谢谢! - adr

1
将您的df1使用to_dict转换为字典。保留HTML,不做解释。
df1.loc[0,0] = [df2.to_dict()]
df1
Out[862]:
                       0
0  [{0: {0: 2, 1: 'b'}}]
1                      a

如果您需要将其转换回数据框,您可以使用数据框构造器。
pd.DataFrame(df1.loc[0,0][0])


Out[864]: 
   0
0  2
1  b

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接