在Python中合并字符串列表和数据框的列时出现问题

-1 投票
2 回答
46 浏览
提问于 2025-04-13 18:06

我有一个情况,需要把一些字符串类型的列合并到一个数据框里。

 columns = ["server", "ip"]
    dataframes = [
        df1,
        df2,
        df3,
        df4,
    ]

   df_res = pd.merge(dataframes, columns )

这个数据框叫做 df1,里面有“name”和“server”这两列。

另外,df1、df2、df3 和 df4 这几个数据框里都有“server”和“ip”这两列,还有其他一些列。

所以,我想把这些包含“server”和“ip”的列合并到一个叫 df_res 的数据框里。

但是我遇到了一个问题:

只能合并 Series 或 DataFrame 对象,但我传入的是一个 类型的东西。

请帮帮我。

2 个回答

0

concat 来代替 merge,这样可以把数据框(dataframe)上下堆叠起来。

df_res = pd.concat([df[columns] for df in dataframes],ignore_index = True)

这样会生成一个新的数据框 df_res,里面的列是 ['server', 'ip'],通过把所有的行上下堆叠在一起。它还会把原来的索引替换成新的索引。

0

你可以使用 join 和 set_index 来进行连接操作:

[df.set_index(['server', 'ip'], inplace=True) for df in dataframes]
df_res = dataframes[0].join(dataframes[1:])

撰写回答