Подготовительный код генерирует блок данных с той же структурой, что и ваш. Интересно, что мне не удалось назвать столбцы animal
и присоединиться к suffix = ("","")
- это вызывает ошибку ValueError: columns overlap but no suffix specified: Index([u'animal'], dtype='object')
. Комментарий @ chrisaycock для переименования столбцов работает отлично.
import pandas as pd
# prepare the dataframe
a1 = ['Dog','Cat','Pig','Cat']
a2 = ['Dog','Cat','Pig','Dog']
df1 = pd.DataFrame({"ani": a1})
df2 = pd.DataFrame({"ani": a2})
# trickery required to get two columns with the same name
df = pd.merge(df1, df2, left_index=True,right_index = True, suffixes=("mal", "mal"))
# fix the column names
df.columns = ['animal1', 'animal2']
# keep only matching rows
df = df[df.animal1 == df.animal2]
Из любопытства, как вы получили DataFrame со столбцами с тем же именем? Можете ли вы заставить их по-другому? 'df.columns = ['animal1', 'animal2']'. – chrisaycock
Спасибо - я унаследовал dataframe. –
Проверьте источник. Если кому-то интересно, данные были получены: pd.concat ([df1, df2], axis = 1) –