我有一些要规范化的库存数据,但是在创建新列时遇到了问题。我需要能够通过引用股票行情栏中的内容,并使用股票行情值作为键从字典中获取相应的值,来向名为Yahoo Ticker的新列中添加一个值。这是我正在使用的词典的一个示例:
dict = {'AAB': 'AAB.TO',
'ABX': 'ABX.TO',
'XDU': 'XDU-U.TO' }
我想在数据框中添加一列,其值基于字典键,因此例如,我想打开该数据框:
df = pd.DataFrame({'Ticker':['AAB','ABX','XDU'] })
插入这样的数据框:
newdf = pd.DataFrame({'Ticker':['AAB','ABX','AAV'],
'Yahoo Ticker':['AAB.TO','ABX.TO','XDU-U.TO']})
以前我尝试过,但是没有用
for index, value in df.iterrows():
df.loc[df['Ticker'][index] in ticker_dictionary, 'Yahoo Tickers'] = ticker_dictionary[value]
答案 0 :(得分:2)
您可以使用map:
import pandas as pd
df = pd.DataFrame({'Ticker': ['AAB', 'ABX', 'XDU']})
d = {'AAB': 'AAB.TO',
'ABX': 'ABX.TO',
'XDU': 'XDU-U.TO'}
df['Yahoo Ticker'] = df['Ticker'].map(d)
print(df)
输出
Ticker Yahoo Ticker
0 AAB AAB.TO
1 ABX ABX.TO
2 XDU XDU-U.TO