如何在DataFrame中存储DataFrame

时间:2018-01-21 22:41:59

标签: python pandas

我有一个包含各种文本和数字列的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。这不是一个重复的问题,如下所示,因为我不想连接“sub”-DataFrames

2 个答案:

答案 0 :(得分:1)

您可以使用set_value:

df1.set_value(0,0,df2)

或:

df1.iat[0,0]=df2

由于.set_value自版本0.21.0起已被弃用。

答案 1 :(得分:0)

使用to_dict

将df1转换为dict
df1.loc[0,0] = [df2.to_dict()]
df1
Out[862]:
                       0
0  [{0: {0: 2, 1: 'b'}}]
1                      a

如果需要将其转换回数据帧,可以使用dataframe构造函数

pd.DataFrame(df1.loc[0,0][0])


Out[864]: 
   0
0  2
1  b