将dataFrame插入另一个dataFrame列

问题描述 投票:1回答:1

我需要将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

有没有办法做到这一点?

python pandas dataframe multiple-columns
1个回答
0
投票

我不完全确定你想要实现什么,但如果你想在数据帧中存储数据帧,你可以使用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)

现在dffMultiIndex的数据框,如下所示:

   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

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.