gpt4 book ai didi

python - 当两个dfs有不同索引时赋值

转载 作者:行者123 更新时间:2023-12-01 02:47:59 24 4
gpt4 key购买 nike

我有两个如下所示的 df:

Symbol Sector      Sub-industry    Company     Weight      SectorSymbol
Ticker
MMM Industrials Conglomerates MCompany 0.602676 XLI
ABT Health Care Equipment Abbott Lab 0.401900 XLV
ABBV Health Care Pharmaceuticals AbbVie Inc 0.550174 XLV
ACN Info Tech Consulting Accenture 0.370650 XLK
ATVI Info Tech Entertainment Activision 0.192788 XLK

                MMM     ABT     ABBV    ACN    ATVI
Date
2017-01-03 1.4 2.3 4.5 2.1 .7
2017-01-04 .8 3.1 5.2 1.8 1.2
2017-01-05 2.4 2.1 5.5 1.6 1.4

我正在尝试将我在第一个 df 中定义的“扇区符号”值应用到第二个 df 中的代码(MMM、ABT、ABBV 等),以便我的第二个 df 将符号 MMM 识别为一部分XLI、ABT 为 XLV,依此类推。

df1 = pd.DataFrame(
{'Sector': ['Industrials'] + ['Health Care']*2 + ['Info Tech']*2,
'Sub-industry': ['Conglomerates', 'Equipment', 'Pharmaceuticals', 'Consulting', 'Entertainment'],
'Company': ['MCompany', 'Abbott Lab', 'AbbVie Inc', 'Accenture', 'Activision'],
'Weight': [.602676, .4019, .550174, .37065, .192788],
'SectorSymbol': ['XLI', 'XLV', 'XLV', 'XLK', 'XLK']},
index=pd.Index(['MMM', 'ABT', 'ABBV', 'ACN', 'ATVI'], name='Symbol Ticker')
)[['Sector', 'Sub-industry', 'Company', 'Weight', 'SectorSymbol']]

df2 = pd.DataFrame({'MMM': [1.4, .8, 2.4],
'ABT': [2.3, 3.1, 2.1],
'ABBV': [4.5, 5.2, 5.5],
'ACN': [2.1, 1.8, 1.6],
'ATVI': [.7, 1.2, 1.4]},
index=pd.Index(['2017-01-03', '2017-01-04', '2017-01-05'], name='Date')
)[['MMM', 'ABT', 'ABBV', 'ACN', 'ATVI']]

预期的输出将包括分配给股票代码的数值,程序会将该股票代码识别为“XLI、XLV、XLK”的一部分,这样我就可以在 df2 中搜索 MMM 的值,并且程序会向我显示多余的运动 # 以及它属于哪个系列 (XLI)

最佳答案

1) 创建一个字典将符号映射到扇区符号。

2) 使用列表理解来获取相关符号的所有扇区符号的有序映射。在字典上使用 get 以允许未映射的证券(请参阅下面的评论)。

3) 对扇区符号使用groupby 并取平均值。

d = df1['SectorSymbol'].to_dict()
sector_symbols = [d.get(symbol) for symbol in df2]
>>> df2.groupby(sector_symbols, axis=1).mean()
XLI XLK XLV
Date
2017-01-03 1.4 1.4 3.40
2017-01-04 0.8 1.5 4.15
2017-01-05 2.4 1.5 3.80

关于python - 当两个dfs有不同索引时赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45086121/

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