【问题标题】:DataFrame Concatenation IssueDataFrame 连接问题
【发布时间】:2020-05-14 20:17:08
【问题描述】:

首先我使用 3 维列表创建了两个数据框。

import pandas as pd
import numpy as np
list= [[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12], [13,14,15], [16,17,18]],[[19,20,21],[22,23,24], 
[25,26,27]]]
narray = np.array(list)
df = pd.DataFrame.from_records(narray)
df1  = pd.DataFrame.from_records(narray)

然后我使用以下方法连接数据帧:

frames = [df, df1]
result = pd.concat(frames)

当我运行上面的代码时,我得到了所需的连接 DataFrame。但是当我尝试使用 for 循环执行相同操作时,我遇到了错误。

frames = []
for i in range(2):
    list= [[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12], [13,14,15], [16,17,18]],[[19,20,21],[22,23,24],[25,26,27]]]
    narray = np.array(list)
    df = pd.DataFrame.from_records(narray)
    frames = [frames, df]
result = pd.concat(frames)

我得到的错误是:

TypeError: 无法连接 '' 类型的对象;只有 Series 和 DataFrame obj 有效

【问题讨论】:

  • for 循环中的 i 在哪里?和 frames 是一个空列表,而不是一个数据框。请再次检查您的代码?
  • 您的连接列表和数据框。这不会工作

标签: python pandas list dataframe concatenation


【解决方案1】:

您的问题来自附加到列表的项目:

frames = []
for i in range(2):
    list= [[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12], [13,14,15], [16,17,18]],[[19,20,21],[22,23,24],[25,26,27]]]
    narray = np.array(list)
    df = pd.DataFrame.from_records(narray)
    frames = [frames, df] # WRONG!
result = pd.concat(frames)

请尝试将frames = [frames, df] 替换为frames += [df]frames.append(df)

frames = []
for i in range(2):
    list= [[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12], [13,14,15], [16,17,18]],[[19,20,21],[22,23,24],[25,26,27]]]
    narray = np.array(list)
    df = pd.DataFrame.from_records(narray)
    frames += [df] # RIGHT!
result = pd.concat(frames)

【讨论】:

    【解决方案2】:

    试试这个 - 附加到框架而不是分配

    for i in range(2):
        list= [[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12], [13,14,15], [16,17,18]],[[19,20,21], 
              [22,23,24],[25,26,27]]]
        narray = np.array(list)
        df = pd.DataFrame.from_records(narray)
    frames.append(df)
    result = pd.concat(frames)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 2011-06-07
      • 2010-10-20
      • 2010-10-03
      • 2011-04-21
      相关资源
      最近更新 更多