gpt4 book ai didi

python - 基于列值的数据框样式行

转载 作者:行者123 更新时间:2023-12-05 06:00:47 26 4
gpt4 key购买 nike

我有一个 csv 文件,我正在尝试将其读入 jupyter notebook 中的数据框和样式。 csv文件数据为:

[[' ', 'Name', 'Title', 'Date', 'Transaction', 'Price', 'Shares', '$ Value'],
[0, 'Sneed Michael E', 'EVP, Global Corp Aff & COO', 'Dec 09', 'Sale', 152.93, 54662, 8359460],
[1, 'Wengel Kathryn E', 'EVP, Chief GSC Officer', 'Sep 02', 'Sale', 153.52, 16115, 2473938],
[2, 'McEvoy Ashley', 'EVP, WW Chair, Medical Devices', 'Jul 28', 'Sale', 147.47, 29000, 4276630],
[3, 'JOHNSON & JOHNSON', '10% Owner', 'Jun 30', 'Buy', 17.00, 725000, 12325000]]

我的目标是设置行的背景颜色样式,如果交易列值为“购买”,则该行为绿色,如果交易列值为“销售”,则为红色。

我试过的代码是:

import pandas as pd

data = pd.read_csv('/Users/broderickbonelli/Desktop/insider.csv', index_col='Unnamed: 0')

def red_or_green():
if data.Transaction == 'Sale':
return ['background-color: red']
else:
return ['background-color: green']

data.style.apply(red_or_green, axis=1)

display(data)

当我运行代码时,它会输出一个未设置样式的电子表格,但不会给我错误代码:

Dataframe

我不太确定我做错了什么,我已经尝试了多种不同的方法,但似乎无法正常工作。任何帮助将不胜感激!

最佳答案

如果你想在条件匹配时比较整行,下面的方法比在 axis=1 上应用更快,我们在整个数据帧上使用样式:

def red_or_green(dataframe):
c = dataframe['Transaction'] == 'Sale'
a = np.where(np.repeat(c.to_numpy()[:,None],dataframe.shape[1],axis=1),
'background-color: red','background-color: green')
return pd.DataFrame(a,columns=dataframe.columns,index=dataframe.index)

df.style.apply(red_or_green, axis=None)#.to_excel(.....)

enter image description here

关于python - 基于列值的数据框样式行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67451064/

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