python - 如何根据引用字典的条件在 Pandas 中创建新列

标签 python pandas

我有正在尝试标准化的库存数据,但在创建新列时遇到问题。我需要能够通过引用 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/

相关文章:

python - 使用正则表达式从 Pandas 数据框中的列中提取数据

python - 将 df 索引及其数据四舍五入到最接近的区间

python - python中的保留方法

javascript - 如何让合金在数据集上运行以检查所有规则

python - 在 Django 中使用聚合获取最小值字段名称

python - Twisted 中的每个刻度运行一个函数

python - pandas:根据列表和另一列条件替换逗号分隔列中的相应值

Python DatetimeIndex 错误 - TypeError : ("cannot do label indexing on <class ' pandas. tseries.index.DatetimeIndex'

python - 模型的训练精度是根据小批量计算的吗?

python - 将 dtype <U30 的 numpy ndarray 转换为 float