[英]How to iteratively merge data frames in pandas?
给定一个数据帧列表,我想迭代合并它们并返回单个数据帧。 输入: 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但不确定如何?
这样的事情应该起作用,
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
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
实用程序会减少 pd.concat
和其他实用程序
PS尚未创建该库已提供的功能,因此乐于阅读文档并重新阅读文档,特别是。 因为熊猫文档是卷
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.