如何基于引用字典的条件在熊猫中创建新列

时间:2020-03-29 20:42:30

标签: python pandas

我有一些要规范化的库存数据,但是在创建新列时遇到了问题。我需要能够通过引用股票行情栏中的内容,并使用股票行情值作为键从字典中获取相应的值,来向名为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]

1 个答案:

答案 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