我有一个包含各种文本和数字列的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
答案 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.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