Python Pandas数据帧-根据索引值添加一个新列



我有一个Python熊猫数据帧,看起来像这样:

year_2000  year_1999  year_1998  year_1997  year_1996  year_1995 (MANH, stock name)
MANH 454.47     -71.90     nan        nan        nan        nan         TEST             
LH   385.52     180.95     -24.14     -41.67     -68.92     -26.47      TEST             
DGX  373.33     68.04      4.01       nan        nan        nan         TEST             
SKX  306.56     nan        nan        nan        nan        nan         TEST 

其中股票代码是指数。我想将每只股票的名称添加为新的列

我尝试通过yearly_best['MANH','stock name']='TEST'添加股票名称列,但它在所有行中添加了相同的名称。

我有一本名为ticker_name的字典,里面有tickers和的名字

Out[65]: 
{'TWOU': '2U',
'MMM': '3M',
'ABT': 'Abbott Laboratories',
'ABBV': 'AbbVie Inc.',
'ABMD': 'Abiomed',
'ACHC': 'Acadia Healthcare',
'ACN': 'Accenture',
'ATVI': 'Activision Blizzard',
'AYI': 'Acuity Brands',
'ADNT': 'Adient',

因此,我想从dict中获取名称,然后将其放在数据帧的一列中。我该怎么做?

作为字典的关键是数据帧的索引,您可以尝试:

d = {'TWOU': '2U',
'MMM': '3M',
'ABT': 'Abbott Laboratories',
'ABBV': 'AbbVie Inc.',
'ABMD': 'Abiomed',
'ACHC': 'Acadia Healthcare',
'ACN': 'Accenture',
'ATVI': 'Activision Blizzard',
'AYI': 'Acuity Brands',
'ADNT': 'Adient',}
df['stock name'] = pd.Series(d)

您可以尝试:

# Create a new column "stock_name" with the index values
yearly_best['stock_name'] = yearly_best.index
# Replace the "stock_name" values based on the dictionary
yearly_best['stock_name'].map(ticker_name, inplace=True)

请注意,在这种情况下,数据帧的索引将保持原样(股票代码(。如果您想用行号替换索引,请考虑使用reset_index

最新更新