gpt4 book ai didi

python - 有人可以帮我在 Pandas Python 的样式点更正以下代码吗

转载 作者:行者123 更新时间:2023-12-01 08:45:47 26 4
gpt4 key购买 nike

for idx,ids in enumerate(uniq):
SV = df_CenteredWin[df_CenteredWin['subVoyageIDs'] == ids]

SV['minGroup']= np.isnan(SV.groupby(pd.TimeGrouper('30T')).DateTime.diff().dt.seconds)
SV['groups'] = (SV['minGroup'].shift(1) != SV['minGroup']).astype(int).cumsum()
SV_Noise = SV[SV['zScore_Noise'] == 'noise']
uniqueID= SV_Noise.groups.unique()

print(uniqueID, SV_Noise.subVoyageIDs.unique())

for idx, groupid in enumerate(uniqueID):
groups = SV[SV['groups'] == groupid]
groups_nosie = groups[groups['zScore_Noise'] == 'noise']
data = pd.DataFrame(data = { 'distance' : groups.Distance,
'Speed' : groups.Speed,
'Z-Score' : groups.centeredZScore,
'flagged' : groups.zScore_Noise.values})
display(data.style.apply(lambda x: ['background: Yellow' if x.name == 'noise' else data for i in x]))

谁能解释一下这行有什么问题,以及如何纠正它

display(data.style.apply(lambda x: ['background: Yellow' if x.name == 'noise' else data for i in x]))

我有以下数据,我试图突出显示标记列等于“噪声”的行

 DateTime            Speed      Score        Distance   flagged
2011-01-09 12:21:59 1.840407 -0.845713 0.030673 noisefree
2011-01-09 12:23:00 4.883493 2.307917 0.082748 noisefree
2011-01-09 12:24:00 4.413968 1.752545 0.073566 noisefree
2011-01-09 12:24:59 4.950600 2.178342 0.081135 noisefree
2011-01-09 12:26:00 10.014879 4.355568 0.169697 noise
2011-01-09 12:27:00 7.534325 2.535460 0.125572 noisefree
2011-01-09 12:27:59 6.965328 2.122056 0.114154 noisefree
2011-01-09 12:29:00 6.993480 1.963185 0.118501 noisefree

错误是:

AttributeError: 'DataFrame' object has no attribute 'rstrip'

最佳答案

你很接近。我不太确定您为什么会收到该错误,但一个问题是您在列表理解的 else block 中返回初始数据帧。

如果您用此替换该行,您可能会有更好的运气。

df.style.apply(lambda x: ["background: yellow" if v == "noise" else "" for v in x], axis = 1)

在本例中,您将迭代 df 中的每一行,突出显示等于噪声的单元格。

来自 Conditionally format Python pandas cell 的帮助/可能重复

编辑:欺骗@scott-boston 和 How to use Python Pandas Stylers for coloring an entire row based on a given column? ,

def highlight_row(s,keyword,column):
is_keyword = pd.Series(data=False, index=s.index)
is_keyword[column] = s.loc[column] == keyword
return ['background-color: yellow' if is_keyword.any() else '' for v in is_keyword]

df.style.apply(highlight_row, keyword="noise", column=["flagged"], axis=1)

关于python - 有人可以帮我在 Pandas Python 的样式点更正以下代码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53309119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com