Python 从循环中保存和合并

Python 从循环中保存和合并,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我正在传递1000行的数据块,并将它们合并到一个pandas数据帧中,但是合并的数据帧没有保存,每次都有一个新的datagframe输出。如何在每次迭代中保存合并 def mergeDFs: def merge(x): df = df.merge(x, left_on="id", right_on="id") reader = pd.read_csv("train_lag.csv", chunksize=1000) for r in reader:

我正在传递1000行的数据块,并将它们合并到一个pandas数据帧中,但是合并的数据帧没有保存,每次都有一个新的datagframe输出。如何在每次迭代中保存合并

def mergeDFs:
    def merge(x):
        df = df.merge(x, left_on="id", right_on="id")


    reader = pd.read_csv("train_lag.csv", chunksize=1000)

    for r in reader:
        merged = merge(r)
    return merged

通过列表理解考虑
concat

def proc_merge(x):
  return df.merge(x, on="id")

reader = pd.read_csv("train_lag.csv", chunksize=1000)

final_df = pd.concat([proc_merge(r) for r in reader])

通过列表理解考虑
concat

def proc_merge(x):
  return df.merge(x, on="id")

reader = pd.read_csv("train_lag.csv", chunksize=1000)

final_df = pd.concat([proc_merge(r) for r in reader])

请正确识别yourcode@ansev抱歉,错过了第一行。预处理函数定义在哪里?这是打字错误吗?使用.append to eppend将它们添加到loop@abhilb对不起,这是为了合并(r),我是从手机上复制的,所以误读了,请正确识别yourcode@ansev抱歉,错过了第一行。预处理函数定义在哪里?这是打字错误吗?使用.append to eppend将它们添加到loop@abhilb很抱歉,这是为了合并(r),我从手机上复制,所以误读了它。这起作用,但返回最终的_df返回的行数比其中任何一个都多。这可能意味着您的ID在两个数据帧中都不唯一,因此正在进行多对多合并。需要考虑哪些附加字段?尝试先将整个
train\u lag
数据帧与
df
合并,然后再将其合并。您完全正确,非常感谢。重新排列Id字段修复了我的问题这是可行的,但返回final_df返回的行数比两个数据帧中的任何一个都多。这可能意味着您的Id在两个数据帧中都不是唯一的,因此正在进行多对多合并。需要考虑哪些附加字段?尝试先将整个
train\u lag
数据帧与
df
合并,然后再将其合并。您完全正确,非常感谢。重新排列Id字段修复了我的问题