Python 从循环中保存和合并
我正在传递1000行的数据块,并将它们合并到一个pandas数据帧中,但是合并的数据帧没有保存,每次都有一个新的datagframe输出。如何在每次迭代中保存合并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:
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字段修复了我的问题