Pandas Dataframes - объединить два Dataframes, но исключить запись с тем же столбцом - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь создать DataFrame из двух существующих. Я прочитал заголовок некоторых статей в Интернете, первый столбец - это заголовок, а следующие - временные метки

Я хочу объединить оба фрейма данных, но не включать те, которые имеют тот же заголовок (первый столбец)

Я пробовал

df = pd.concat ([df1, df2]). Drop_duplicates (). Reset_index (drop = True)

но поскольку другие столбцы могут быть не точными все время одно и то же, мне нужно исключать каждый пакет данных, который имеет один и тот же первый столбец. как бы мне это сделать?

кстати, извините, что не знаю всех правильных условий для моей проблемы

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Вероятно, это решит вашу проблему:

import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(2*5).reshape(2,5))
df2=pd.DataFrame(np.arange(2*5).reshape(2,5))
df.columns=['blah1','blah2','blah3','blah4','blah']
df2.columns=['blah5','blah6','blah7','blah8','blah']

for i in range(len(df.columns)):
    for j in range(len(df2.columns)):
        if df.columns[i] == df2.columns[j]:
            df2 = df2.drop(df2.columns[j], axis = 1)
        else:
            continue

print(pd.concat([df, df2], axis =1))
0 голосов
/ 10 июля 2020

Вы должны сначала удалить повторяющиеся строки из df2, а затем объединить его с df1:

df = pd.concat([df1, df2[~df2.title.isin(df1.title)]]).reset_index(drop=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...