python - 如何在 pandas 中向 .str.contains 添加多个字符串?
问题描述
检查我提供的代码,检查 m1 和 m2 的部分,我在那里评论。我想添加多个字符串,这里有简单的解决方案吗?
我知道这不是这样做的方法,但这是我想出的唯一解决方案。如果您有其他相同想法的解决方案,请提供。
import pandas as pd
NewDataFrame = pd.DataFrame({'Group':['aaa','bbb','ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh'],
'N':[1,2,3,4,5,6,7,8]})
def highlight_cells(x):
c2 = 'background-color: #00FF00'
c1 = 'background-color: red'
c = 'background-color: white'
m1 = NewDataFrame['Group'].str.contains("aaa", na=False) # here to add more strings ("bbb", "ggg")
m2 = NewDataFrame['Group'].str.contains("ccc", na=False) # here to add additional strings ("fff")
#how to add more then one string, not to add new line for every string?
colordata = pd.DataFrame(c, index=x.index, columns=x.columns)
colordata.loc[m1, 'Group'] = c1
colordata.loc[m2, 'Group'] = c2
return colordata
end = StartingDataFrame.style.apply(highlight_cells,axis=None)
end
解决方案
添加字符串,|
如:
def highlight_cells(x):
c2 = 'background-color: #00FF00'
c1 = 'background-color: red'
c = 'background-color: white'
m1 = NewDataFrame['Group'].str.contains("aaa|bbb|ggg", na=False)
m2 = NewDataFrame['Group'].str.contains("ccc|fff", na=False)
#how to add more then one string, not to add new line for every string?
colordata = pd.DataFrame(c, index=x.index, columns=x.columns)
colordata.loc[m1, 'Group'] = c1
colordata.loc[m2, 'Group'] = c2
return colordata
end = StartingDataFrame.style.apply(highlight_cells,axis=None)
推荐阅读
- c# - WPF 将复选框值转换并绑定到 UI 元素的可见性
- css - Vuetify v-timeline 中心线的多种颜色
- python - 如何概括自定义绘图函数以绘制多个不同的事物
- c# - 如何编写一个既可继承又通用的类?
- ansible - 如果键在ansible play中的dict中不可用,如何设置默认值
- c# - 如何在itext7中居中对齐并设置粗体文本
- python - 比较和量化一组非线性数据中的相似性
- content-management-system - 在 Hybris 中,如何在没有自定义组件的情况下呈现新的 CMS 页面?
- php - Symfony 引导主题
- c# - List 中的 Foreach 仅在迭代后的不同条件下返回相同的记录