我需要将dataframe
插入另一个dataframe
列,我该如何做?
df = pd.DataFrame(columns=('X_F', 'Y_F', 'Z_F', 'Label'))
df['X_F'] = X[uid]
df['Y_F'] = Y[uid]
df['Z_F'] = Z[uid]
它告诉我
ValueError: Cannot set a frame with no defined index and a value that cannot be converted to a Series
有没有办法做到这一点?
我不完全确定你想要实现什么,但如果你想在数据帧中存储数据帧,你可以使用MultiIndex
。
请看示例:
df1 = pd.DataFrame({'A': [1,2,3],
'B': list('abc'),
'C': [3.3,2.7,9.1]})
df2 = pd.DataFrame({'A': [4,5,6],
'B': list('def'),
'C': [1.7,0.3,2.8]})
df3 = pd.DataFrame({'A': [7,8,9],
'B': list('ghi'),
'C': [0.3,0.4,0.5]})
dfs = [df1, df2, df3]
names = ['X', 'Y', 'Z']
result = {}
for df, name in zip(dfs, names):
data = df.to_dict()
for key, value in data.items():
result[(name, key)] = value
dff = pd.DataFrame(result)
现在dff
是MultiIndex
的数据框,如下所示:
X Y Z
A B C A B C A B C
0 1 a 3.3 4 d 1.7 7 g 0.3
1 2 b 2.7 5 e 0.3 8 h 0.4
2 3 c 9.1 6 f 2.8 9 i 0.5
如果你想从中获取数据帧Y
,你可以使用:
dff['Y']
# A B C
#0 4 d 1.7
#1 5 e 0.3
#2 6 f 2.8
希望这可以帮助。