Este é o meu DataFrame.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
'a': [2, 2, 2, -4, np.nan, np.nan, 4, -3, 2, -2, -6],
'b': [2, 2, 2, 4, 4, 4, 4, 3, 2, 2, 6]
}
)
Quero adicionar um sinal de mais para números positivos apenas para colunas a
ao exportar para Excel. Por exemplo, 1 torna-se +1. NaN
Observe que também tenho valores. Quero que sejam células vazias no Excel, semelhantes ao comportamento padrão do Pandas ao lidar com NaN
valores no Excel.to_excel.
Eu tentei muitas soluções. Este é um deles. Mas não funcionou no Excel.
df.style.format({'a': '{:+g}'}).to_excel(r'df.xlsx', sheet_name='xx', index=False)
Você pode definir um clássico
+0;-0;0
(conforme a especificação 18.8.31/a ), com xlsxwriter , como num-format :Que tal usar um callable:
Chamada alternativa:
lambda x: '' if np.isnan(x) else f'{x:+g}'
Saída (em jupyter):