我有一个熊猫数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame({'foo':[1,2, 3, 4],
'bar':[[1,2,0.04], [1,2,0.04], [1,2,0.06], np.nan]})
display(df)
def stars(x, sign_level):
if x is np.nan:
return ''
else:
p_value = x[2]
if p_value < sign_level:
return '*'
else:
return ''
df['marker'] = df.bar.apply(stars, sign_level=0.05)
df
如果结果被认为是重要的,是否可以将单元格(如Excel表格中的单元格)设置为粗体,而不是添加带星号的列?
在一行中以粗体显示DataFrame()值似乎只能格式化整行-我想只重新格式化一个特定的单元格
有条件地格式化Python熊猫单元格
看起来很相似,虽然它们只改变背景,而不是粗体的格式。
下面的代码已经可以更改背景颜色了-我只是不知道如何设置为粗体。
def highlight_significant(x, sign_level):
if x is np.nan:
return ''
else:
if isinstance(x, list):
p_value = x[2]
color = 'lightgreen' if p_value < sign_level else ''
if p_value < sign_level:
return 'background-color: %s' % color
else:
return ''
else:
return ''
df.style.applymap(highlight_significant, sign_level=0.05)
这可能会有帮助...
设置数据帧
import pandas as pd
import numpy as np
np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],
axis=1)
df.iloc[0, 2] = np.nan
创建可根据定义的条件应用以添加粗体的函数
def negative_bold(val):
bold = 'bold' if val < 0 else ''
return 'font-weight: %s' % bold
将该函数应用于数据框的样式
s = df.style.applymap(negative_bold)
看看数据框,你会发现所有的负数都是粗体的
我看了这里https://mode.com/example-gallery/python_dataframe_styling/这里https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html
编辑添加到此答案。。。
结合两种风格
我有两个功能,一个突出黄色的数字是负数,另一个使数字黑体,如果是负数
Negative_yellow
def negative_yellow(val):
color = 'yellow' if val < 0 else ''
return 'background-color:' + color
负体粗体
def negative_bold(val):
bold = 'bold' if val < 0 else ''
return 'font-weight: %s' % bold
我将这两种方法应用于数据帧,如下所示
df.style.\
applymap(negative_yellow).\
applymap(negative_bold)
我想有更优雅的方式来做这件事。希望这有帮助:)
问题内容: 我有一个从以下代码获得的数据框,但无法将索引转换为dd / mm / yyyy 这是结果 我已经在stackoverflow上搜索了其他几个不同的变体,但是我找不到适合的组合。 它仍然打印出as 问题答案: 如果需要则是个问题,因为是in的默认显示格式。 如果需要通过索引: 不幸的是,这不起作用-docs:
number(string $format): self string $format $config = [ 'path' => './tests' ]; $fileObject = new \Vtiful\Kernel\Excel($config); $fileObject = $fileObject->fileName('tutorial.xlsx'); $fileHan
我们可以看到格式化就是通过格式字符串得到特定格式: format!("{}", foo) -> "3735928559" format!("0x{:X}", foo) -> "0xDEADBEEF" format!("0o{:o}", foo) -> "0o33653337357" 根据使用的参数类型,同样的变量(foo)能够格式化成不同的形式:X, o 和未指定形式。 这个格式化的功能是通过 t
问题内容: 我正在创建一个HTML表,将在Excel中作为电子表格打开。我可以使用哪种HTML标记或CSS样式“讲述” Excel以将单元格的内容显示为文本? 问题答案: 您可以将格式应用于数字,文本,日期等的单元格。 请参阅我以前关于此的答案:HTML toExcel:如何告诉Excel将列视为数字? (已调整的代码段) 如果将CSS类添加到页面: 并在您的TD上拍那些课,行得通吗?
问题内容: 我有大熊猫表格数据框要转换为JSON。标准的.to_json()函数不会为JSON创建紧凑格式。如何仅使用pandas获得这样的JSON输出格式? 这是用于表格数据的JSON的一种非常紧凑的格式。(我可以在行上循环。…但是) 问题答案: 看来你需要先于: 由于尚未实现: ValueError:选项“ orient”的值“ list”无效 编辑: 如果index不是column,请添加:
格式化 格式化是一件主观的事。如同这里的许多规则一样,这里并没有一定/立刻需要遵守的规则。可以在这里完成格式的自动化。 大小写一致 JS 是弱类型语言,合理的采用大小写可以告诉你关于变量/函数等的许多消息。 这些规则是主观定义的,团队可以根据喜欢进行选择。重点在于无论选择何种风格,都需要注意保持一致性。 反例: var DAYS_IN_WEEK = 7; var daysInMonth = 30;