【发布时间】:2026-01-08 09:25:03
【问题描述】:
我想连接几个数据帧。
df_t = pd.DataFrame({"a": [0, 1, 2], "b": [1,2,3], "c": [9,8,7]})
df_t2 = pd.DataFrame({"a": [0, 1, 2], "b": [np.nan,0,3], "d": [9,8,7]})
...
在这样做之前,我必须调用另一个函数,该函数接受一个数据帧并返回一个数据帧和一个列表
例如:
def do(a):
a = sth(a)
return a, a.columns.tolist()
我想将 concat 函数应用于每个数据帧并扩展每个数据帧的返回列列表
reduce(lambda y, y2: pd.concat([y,y2]), map(lambda x: do(x), [df_t,df_t2,...]))
但是,当它尝试在第二次迭代中连接我的列表时出现错误。这甚至可以在减少中解决吗?是否有另一种内存友好的方法来解决这个问题?
目标是有一个连接和处理的数据框和所有列的列表。
【问题讨论】:
-
这样构造代码有什么特别的原因吗?它不容易阅读,也不完全是 Pythonic
-
我愿意接受任何建议 :) 我只是想避免使用循环和附加
-
预期输出是什么,请详细说明
-
一个大的(连接的)数据框从数据框列表(处理/分解的列...->由不同的函数)和每个单独的数据框包含的列列表构建
标签: python pandas dictionary reduce