столбец может быть другим.
у найти разницу, сравнивая два DataFrames и объединяя различия в новый DataFrame, но есть проблема, когда значения отсутствуют в одном из DataFrames, генерируется ошибка:ValueError: Can only compare identically-labeled Series objects
Я думаю, что есть проблема с индексом заголовка. Если вы можете помочь мне, это будет здорово.
df1 have one missing value at column 1980
df1
Country 1980 1981 1982 1983 1984
Bermuda 0.00687 0.00727 0.00971 0.00752
Canada 9.6947 9.58952 9.20637 9.18989 9.78546
Greenland 7 0.00746 0.00722 0.00505 0.00799
Mexico 3.72819 4.11969 4.33477 4.06414 4.18464
df2
Country 1980 1981 1982 1983 1984
Bermuda 0.77777 0.00687 0.00727 0.00971 0.00752
Canada 9.6947 9.58952 9.20637 9.18989 9.78546
Greenland 0.00791 0.00746 0.00722 0.00505 0.00799
Mexico 3.72819 4.11969 4.33477 4.06414 4.18464
def process_df(df):
res = df.set_index('Country').stack()
res.index.rename('Column', level=1, inplace=True)
return res
df1 = process_df(df1)
df2 = process_df(df2)
mask = (df1 != df2) & ~(df1.isnull() & df2.isnull())
df3 = pd.concat([df1[mask], df2[mask]], axis=1).rename({0:'From', 1:'To'}, axis=1)
print(df3)
Я хочу показать пропущенные значения, как пустое пространство, пример ниже:
From To
Country Column
Bermuda 1980 0.77777
Greenland 1980 0.00791 7
Помните, что код работает нормально, если нет пропущенных значений, но я хочу иметь возможность обрабатывать и пропущенные значения. Спасибо