我有正在尝试标准化的库存数据,但在创建新列时遇到问题。我需要能够通过引用 Ticker 列中的内容并从字典中获取相应的值,使用 Ticker 值作为键,向名为 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]
最佳答案
您可以使用 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
关于python - 如何根据引用字典的条件在 Pandas 中创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60920464/