gpt4 book ai didi

python - 在一个数据框中查找符号并将其替换为跨数千列的另一个数据框中的值

转载 作者:太空狗 更新时间:2023-10-30 02:51:55 24 4
gpt4 key购买 nike

我有一个以股票代码作为值的数据框 1。日期在列中

 {     1/10/2001 1/11/2001 1/12/2001 ...............etc till 1/22/2019
0 AAPL MS AAPL
1 MRK AAPL AMZN
2 AMZN MSFT MRK
3 MSFT AAPL MSFT
}

我的第二个数据框包含作为索引的符号,列上的日期与第一个数据框完全匹配。这些值是每日返回。

{       1/10/2001 1/11/2001 1/12/2001 .............. etc till 1/22/2019
AAPL 0.05 0.03 0.03
MSFT 0.04 0.01 0.01
MRK -0.04 -0.07 0.05
MS 0.02 0.04 0.08
GS 0.01 0.02 0.10
AMZN 0.04 0.02 0.06
}

本质上,目标是用数据帧 2 中的返回值替换数据帧 1 中的符号

 {     1/10/2001 1/11/2001 1/12/2001 ...............etc till 1/22/2019
0 0.05 0.04 0.03
1 -0.04 0.03 0.06
2 0.04 0.01 0.05
3 0.04 0.03 0.01
}

我试过iloc,loc,太静态了。我尝试了 map、merge,但在使其动态和可扩展方面没有运气。

最佳答案

你需要df.replace()对于这个用例,它会在替换时自动映射索引和值,因此您应该得到所需的输出:

df_new=df1.replace(df2)
print(df_new)

2001-10-01 2001-11-01 2001-12-01
0 0.05 0.04 0.03
1 -0.04 0.03 0.06
2 0.04 0.01 0.05
3 0.04 0.03 0.01

这会将 df1 的所有值替换为与 df2 的索引相对应的 df2。

示例如下:

print(df1)

2001-10-01 2001-11-01 2001-12-01
0 AAPL MS AAPL
1 MRK AAPL AMZN
2 AMZN MSFT MRK
3 MSFT AAPL MSFT

print(df2)

2001-10-01 2001-11-01 2001-12-01
AAPL 0.05 0.03 0.03
MSFT 0.04 0.01 0.01
MRK -0.04 -0.07 0.05
MS 0.02 0.04 0.08
GS 0.01 0.02 0.10
AMZN 0.04 0.02 0.06

df_new=df1.replace(df2)
print(df_new)

2001-10-01 2001-11-01 2001-12-01
0 0.05 0.04 0.03
1 -0.04 0.03 0.06
2 0.04 0.01 0.05
3 0.04 0.03 0.01

关于python - 在一个数据框中查找符号并将其替换为跨数千列的另一个数据框中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54385429/

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