Мне нужно создать лист Excel на основе записей MySQL. Но прежде чем записать их в Excel, я хочу добавить новое значение ключа во фрейм данных, проверив условие суммы> 10000. К сожалению, статус всегда показывает статус Ok во фрейме данных. Даже если условие работает нормально, оно не отражается во фрейме данных. Некоторые идеи или подсказки действительно ценятся.
import mysql.connector
import pandas as pd
import numpy as np
import sys
conn = mysql.connector.connect(host='localhost',
database='db_name',
user='sammy',
password='password')
def apply_color(x):
if x < 10000:
color = 'red'
else:
color = 'white'
return 'background-color: %s' %color
if conn.is_connected():
writer = pd.ExcelWriter('demo.xlsx', engine='xlsxwriter')
writer.save()
SQL_Query=pd.read_sql_query('''select * from demo_table''', conn)
df = pd.DataFrame(SQL_Query, columns=['id','desp','amount'])
df['status'] = np.where(df['amount'].astype(float) >= 10000, 'OK', 'NOTOKS')
df.style.applymap(apply_color, subset=['status'])
writer = pd.ExcelWriter('demo.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
writer.save()