Панды, как снять фрейм данных для строки из другого df и получить все некомпонентные для нового df - PullRequest
0 голосов
/ 30 мая 2018

У меня есть два csvs, полные контактной информации.Моя цель состоит в том, чтобы проверить, есть ли данные из какой-либо ячейки в первой ячейке где-нибудь во второй, и если это так, скопировать всю строку, в которой была найдена информация, и добавить ее в новый DataFrame.Есть ли способ получить вывод в хорошо отформатированном df?

Registered = []
string = []
o = df1.shape
p = df2.shape
xmax = o[0]
ymax = o[1]
zmax = p[0]
rmax = p[1]
found = 0
    for x in range (xmax):
        for y in df1:
            cell = df1.iat[x,y]
            repr(cell).lower()
            for z in range (zmax):
                for r in df2:
                    found = repr(key) in repr(data)
                    if found is True:
                    string = df1.iloc[[z]]
                    Registered.append(string)
                while r <= (rmax - 2):
                r = r + 1
        while y <= (ymax - 2):
        y = y + 1
df3 = pd.DataFrame(Registered)

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Если я вас правильно понял, вы хотите извлечь те записи, которые существуют в обоих фреймах?Если это так, то подход от Kallol - не самая плохая идея, но вместо удаления дублированных записей мы хотим сохранить дублированные записи:

 df_result = pd.concat([df1, df2])
 df_result = df_result[df_result.duplicated()]

И если вы хотите сделать это на основе одного или нескольких столбцов, выможно просто указать это через параметр subset метода duplicated():

df_result = pd.concat([df1, df2])
df_result = df_result[df_result.duplicated(subset="my_foreign_key_column")]
0 голосов
/ 30 мая 2018

Попробуйте это:

df3=pd.concat([df1,df2])
result=df3.drop_duplicates()
result.to_excel("OF.xls")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...