这是我的数据框。
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]
}
)
a
我想在导出到 Excel 时仅为列添加正数加号。例如1变成+1。请注意,我NaN
也有价值观。我希望它们是 Excel 中的空单元格,类似于 Pandas 在处理NaN
中的值时的默认行为to_excel.
我尝试了很多解决方案。这是其中之一。但在 Excel 中却不起作用。
df.style.format({'a': '{:+g}'}).to_excel(r'df.xlsx', sheet_name='xx', index=False)
您可以使用xlsxwriter设置经典
+0;-0;0
(根据规范 18.8.31/a)作为num-format:使用可调用怎么样:
替代可调用:
lambda x: '' if np.isnan(x) else f'{x:+g}'
输出(在 jupyter 中):