给出一个数据帧列表,我想迭代地合并它们并返回单个数据帧。输入:frames
(熊猫数据帧列表)和on_columns
(字符串或包含要合并的列名称的字符串列表)。如何使用df.merge
完成此操作?
“”
给定数据帧列表,迭代合并它们并返回一个
单个数据框
"""HINT: Use slice on frames when iterating and merging.
Arguments:
frames {list} -- a list of pandas DataFrames
on_columns {string or list} -- a string or list of strings
containing the column names on which to join
Returns:
df -- a pandas.DataFrame containing a merged version of the
two provided dataframes. If frames is None or an empty list return None
"""
def merge(frames, on_columns):
#implementation here
df = #merged df
return df
编辑:我想也许我可以使用df.concat,但不确定如何?
答案 0 :(得分:2)
类似的事情应该起作用
def merge(frames, on_columns):
#implementation here
if not frames:
return None
if len(frames) == 1:
return frames[0]
out = frames[0]
for df in frames[1:]:
out = out.merge(df, on=on_columns)
return out
答案 1 :(得分:0)
import pandas as pd
df = next(dfs)
for records in dfs:
df = df.append(records)
# the above is equivalent to
df = pd.concat(dfs)
小室:
dfs
是pandas.DataFrame对象的迭代器dfs
具有相同的列pd.concat
期望可迭代)尚不明确;无论如何,pd.concat
实用工具都会进行精简pd.concat
和其他实用程序
P.S。不要创建该库已经提供的功能,请高兴地阅读文档并重新阅读文档,尤其是。因为熊猫文档是卷