在Python中合并字符串列表和数据框的列时出现问题
我有一个情况,需要把一些字符串类型的列合并到一个数据框里。
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:])