根据另一列填充熊猫列

时间:2018-12-19 22:17:47

标签: python pandas apply

我想根据另一列中的条目填充数据框的每一列,特别是我想用该股票的相应代码的相应名称填充每一行,就像这样

dict1 = [{'ticker': 'AAPL','Name': 'Apple Inc.'},
 {'ticker': 'MSFT','Name': 'Microsoft Corporation'}]

df1 = pd.DataFrame(dict1)

此功能提供给定股票的名称:

所以我可以为MSFT取一个名字:

dict1 = [{'ticker': 'AAPL','Name': 'Apple Inc.'},
 {'ticker': 'MSFT','Name': get_nasdaq_symbols().loc['MSFT'].loc['Security Name'][:-15]}]

我正在努力寻找一种通过for循环或apply自动化该方法的方法。谁能建议一种方法?

请注意,用于提取名称的函数来自此处:

 from pandas_datareader.nasdaq_trader import get_nasdaq_symbols

1 个答案:

答案 0 :(得分:2)

您可以首先创建系列映射:

ticker_name_map = get_nasdaq_symbols()['Security Name'].str[:-15]

然后使用pd.Series.map 1

df1['Name'] = df1['ticker'].map(ticker_name_map)

如果您希望未映射的值保持不变,请使用后续的fillna

df1['Name'] = df1['ticker'].map(ticker_name_map).fillna(df1['Name'])

1 pd.Series.replace也可以,但是inefficient

相关问题