python - Python pandas 中的灵活链接
问题描述
环境
我按顺序将两种方法应用于熊猫样式器对象,例如
df.style \
.applymap(mapping1, subset=["column_a"]) \
.applymap(mapping2, subset=["column_b"])
不过,我应用的映射有所不同。例如,我可能意识到我想添加一个名为mapping3
column的新映射column_c
。为了可扩展性,我希望能够快速添加映射并应用它,而不必在上面的代码段中添加一行。
我的问题
我想灵活地提供映射并将它们全部应用于df
,其中输入是映射列表(例如mappings = [(mapping1, col1), (mapping2, col2), (mapping3, col3)]
,输出是样式化的数据框。
即使这个问题使用了样式数据框的例子,我认为这个问题并不限于链接样式器对象本身。我认为它适用于 pandas 中所有类型的链接方法。
可重现的例子
import pandas as pd
df = pd.DataFrame({
"column_a": [-1, -2, 3, 4],
"column_b": ["good", "bad", "neutral", "amazing"],
"column_c": [0.1, 0.9, 0.5, 1]
})
def mapping1(val):
if val < 0:
color = "red"
elif val > 0:
color = "green"
else:
color = "black"
return "background-color: %s" % color
def mapping2(val):
if val == "amazing":
color = "purple"
else:
color = "black"
return "color: %s" % color
def mapping3(val):
if val < 0.8:
color = "orange"
if val >= 0.8:
color = "green"
return "color: %s" % color
styler = df.style \
.applymap(mapping1, subset=['column_a']) \
.applymap(mapping2, subset=["column_b"]) \
.applymap(mapping3, subset=["column_c"])
styler
解决方案
推荐阅读
- angular - 离子构建 android 与谷歌服务失败
- javascript - Babel 不会转译子文件夹
- html - 调整大小时如何让我的网站正确缩放?
- java - Amazon Ec2 实例的响应时间很慢
- java - 它不会给我代码错误,MySQLSyntaxErrorException
- visual-studio-code - VSCode Minimap 不工作,是我的机器太旧了吗?
- python - 如何将html标签添加到字符串,避免嵌套标签
- python - 为什么数据框的内容会影响设置?
- apache-kafka - 如何使用 Kafka 连接输出到 GCS 中的动态目录?
- python - 如何在 Python 中使用 drawContours OpenCV 方法?