【发布时间】:2016-11-27 23:03:26
【问题描述】:
这是this 的后续问题。
使用 Pandas 样式,我设法将数据框中的所有值格式化为以逗号作为千位分隔符的值。但是,当数据框中有空字符串时,格式化失败。
谁能帮我解决这个问题?
这是我目前的代码:
import pandas as pd
from IPython.display import HTML
styles = [
hover(),
dict(selector = "th",
props = [("font-size", "110%"),
("text-align", "left"),
("background-color", "#cacaca")
]
)
]
column_01 = ["", 2000000000, "", 21000000, 3000]
df = pd.DataFrame(column_01)
int_frmt = lambda x: "{:,}".format(x) # Integer
float_frmt = lambda x: "{:,.0f}".format(x) if x > 1e3 else "{:,.2f}".format(x) # Float
str_frmt = lambda x: "{:}".format(x) # <----- Added for empty strings but fails
frmt_map = {np.dtype("int64"): int_frmt,
np.dtype("float64"): float_frmt,
np.dtype("S"): str_frmt # <----- Added for empty strings but fails
}
frmt = {col: frmt_map[df.dtypes[col]] for col in df.columns if df.dtypes[col] in frmt_map.keys()}
html = (df.style.set_table_styles(styles).format(frmt))
html
【问题讨论】:
标签: python pandas dataframe ipython