У меня есть два pandas кадра данных, и я хочу выделить ячейки, где есть несоответствие. Я использую PyCharm IDE для кодирования. Dataframe1, Dataframe2, объединенный dataframe, даже окончательный dataframe после замены отображается в консоли. Но когда я использую style.apply , окончательный кадр данных не отображается в консоли с выделенными различными ячейками. Он не выдает никакой ошибки, и код выхода равен 0. Как мне сделать так, чтобы он отображался в консоли, если я использую какой-либо пакет или модуль. Можете ли вы предложить?
Ниже код, который я использую:
import pyodbc
import pandas as pd
import sys
conn = pyodbc.connect("DRIVER=Teradata;DBCNAME=teratesting.com;UID=xxx;PWD=xxxx",unicode_results=True)
Source_Query = pd.read_sql_query ('''Q1;''',conn)
df1 = pd.DataFrame(Source_Query, columns=[])
print(df1)
Target_Query = pd.read_sql_query('''Q2;''',conn)
df2 = pd.DataFrame(Target_Query, columns=[])
print(df2)
df_all = pd.concat([df1.set_index(''), df2.set_index('')], axis='columns', keys=['First', 'Second'])
print(df_all)
df_final = df_all.swaplevel(axis='columns')[df1.columns[1:]]
print(df_final)
# Note: df_final dataframe gets printed successfully. Problem is in last line of this code
def highlight_diff(data, color='yellow'):
attr = 'background-color: {}'.format(color)
other = data.xs('First', axis='columns', level=-1)
return pd.DataFrame(np.where(data.ne(other, level=0), attr, ''),index=data.index, columns=data.columns)
df_final.style.apply(highlight_diff, axis=None)