简体   繁体   中英

I am trying to join a dataframe with a pandas series but get Nan values for the dataframe

I have a pandas series called mean_return:

BHP     0.094214
GOOG    0.180892
INTC   -0.179899
MRK     0.065741
MSFT    0.205519
MXL     0.153332
SHEL    0.001714
TSM     0.162741
WBD    -0.233863
dtype: float64
pandas.core.series.Series

When i try to merge the above with the dataframe below I get Nan values for mean return: (excuse the formatting Im not sure how to copy and paste the dataframe). I see the tickers are not ordered the same for the series as the DF, what can i do to merge both DF and series?

0

mkt_value   weights investment  shares  mean_return
 0  GOOG    51.180000   0.115308    14413.469698    281.623087  NaN
 1  BHP 99.570000   0.140488    17560.996495    176.368349  NaN
    INTC    25.719999   0.092804    11600.473577    451.029311  NaN
    MXL 87.599998   0.110175    13771.865664    157.213081  NaN
    MRK 234.240005  0.102416    12801.944297    54.653108   NaN
    MSFT    34.220001   0.123298    15412.217160    450.386225  NaN
    SHEL    51.970001   0.142114    17764.225757    341.816920  NaN
    TSM 69.750000   0.134963    16870.389838    241.869388  NaN
    WBD 11.980000   0.038435    4804.417515 40
    
        

Here is the code is used:

df=pd.DataFrame(tickers_list)
df.rename({'index':'tickers_list'},axis='columns',inplace=True)
df['mkt_value']=data.values[-1]
df['weights']=weights
df['investment']=port_size*weights
df['shares']=df['investment']/df['mkt_value']
df['mean_return']=mean_return
df

If the tickers in the df are unique, then I would set them as an index. and then use pd.concat which concatenates based on index.

df = df.set_index('tickers_list')
mean_returns.name = "mean_returns"
df = pd.concat([df, mean_returns], axis=1)

You set the name attribute as that will be the name of the new column.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM