python - 自动从列表中加入 pandas 数据框

标签 python pandas dataframe

我有一个包含 4 个数据框的列表,每个数据框仅包含 1 列(“CustomerID”)。我想在循环中合并(内部联接)它们。

这是我目前尝试的:

for i in all_df:
    merged = all_df[0].merge(all_df[1], on='CustomerID')
    del df[0]

我在这里想做的是将第一个数据帧(索引 0)与第二个数据帧(索引 1)合并,然后删除第一个数据帧,以便索引 1 的数据帧成为索引 0 的数据帧,从而,我可以迭代。

我知道这不起作用,因为我应该从第二次迭代中合并的数据帧应该是新变量“合并”与索引 1 的数据帧的数据帧。

这4个数据框是不同时间(2019年3月、2019年4月、2019年5月等)的客户端数据库。重点是分析客户生命周期(他们保持客户状态多久?他们离开多少天后?等等)

你能帮我解决这个问题吗?

最佳答案

如果你想合并多个dataframe,你可以使用functools.reduce如下

from functools import reduce
df_merge = reduce(lambda df_x, df_y: pd.merge(df_x, df_y, on='CustomerID'), all_df)

关于python - 自动从列表中加入 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59272087/

相关文章:

python - Pandas 数据框获取每组的第一行

python - 无法将十六进制代码转换为 unicode 字符,出现 unicodeescape 错误

python - 根据另一个 pandas 日期列表拆分 pandas 日期列表

r - 将矩阵转换为数据框时保留行名

python - 使用结构进行 django 部署 - TypeError : prepare_deployment() takes exactly 1 argument (0 given)

python - 用Flask Python框架重写配置Lighttpd的问题

python - torch 张量在 for/while 循环中更改为 numpy 数组?

Python 子进程在不同的发行版中表现不同

python - 连接 pandas Dataframe 中的行

python - Pandas:从 DataFrame 列制作字典的最有效方法