【问题标题】:Insert dataFrame into another dataFrame column将 dataFrame 插入另一个 dataFrame 列
【发布时间】:2018-08-30 08:54:02
【问题描述】:

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

有什么办法吗?

【问题讨论】:

  • 您可以使用pandas.DataFrame.merge合并两个或多个数据框
  • 我不需要合并,我需要将它添加到列中...
  • 你的意思是嵌套数据框吗?

标签: python pandas dataframe multiple-columns


【解决方案1】:

我不太确定您要实现什么目标,但如果您想将数据帧存储在数据帧中,可以使用 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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多