gpt4 book ai didi

python - 如何根据 Pandas 中的索引级别设置行值?

转载 作者:行者123 更新时间:2023-12-05 01:23:34 25 4
gpt4 key购买 nike

我想在 Pandas 中添加一列dataframe 并根据索引级别 0 和 1 设置值。例如,将值设置为 buy对于级别 0 为 hom 的索引和列 delta大于0。并将值设置为sell对于级别 0 为 hom 的索引和列 delta小于0。0级的不同值还有其他规则。

我该怎么做?

>df
delta
fut ABC 15284.233222
pos DEF 0.248976
POL 0.002041
ABC 0.043585
hom YTY 0.054100
MNN -0.356873

这是期望的输出:

>df
delta new_col
fut ABC 15284.23 nan
pos DEF 0.248976 nan
POL 0.002041 nan
ABC 0.043585 nan
hom YTY 0.054100 buy
MNN -0.356873 sell

我可以用 loc 过滤数据框不确定如何创建新列。

df.loc[df.index.get_level_values(level=0) == 'hom'] > 0

delta new_col
hom YTY 0.054100 True
MNN -0.356873 False

最佳答案

不需要做任何 bool 掩码,因为你的数据已经有了一个可用的索引!您可以简单地使用 .loc 进行子集化并创建一个新列。

import pandas as pd
import numpy as np

df.loc['hom', 'new_col'] = np.where(df.loc['hom', 'delta'] > 0, 'buy', 'sell')

print(df)
delta new_col
fut ABC 15284.233222 NaN
pos DEF 0.248976 NaN
POL 0.002041 NaN
ABC 0.043585 NaN
hom YTY 0.054100 buy
MNN -0.356873 sell

关于python - 如何根据 Pandas 中的索引级别设置行值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72276084/

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