Как итеративно объединить фреймы данных в пандах? - PullRequest
0 голосов
/ 11 октября 2018

Учитывая список фреймов данных, я хочу итеративно объединить их и вернуть один фрейм данных.Входные данные: 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, но не уверен, как?

Ответы [ 2 ]

0 голосов
/ 22 марта 2019
import pandas as pd

df = next(dfs)
for records in dfs:
    df = df.append(records)

# the above is equivalent to
df = pd.concat(dfs)

предостережения:

PS не создавайте функцию, которую уже предоставляет библиотека, будьте счастливы прочитать документы и перечитать документы, esp.так как панды документы являются томами

0 голосов
/ 11 октября 2018

Как-то так должно работать,

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...