我想根据另一列中的条目填充数据框一列的每一行,特别是我想用该股票相应股票代码的相应名称填充每一行,如下所示
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
最佳答案
您可以先创建一个系列映射:
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 .
关于python - 根据另一列填充 pandas 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53859920/