python – 为什么不是df [“ColumA”] = df_2 [“ColumnB”]按预
发布时间:2020-12-20 11:51:59 所属栏目:Python 来源:网络整理
导读:给出两个DataFrame: #df1value Symbol Date Type Value1109914 AUD 2016-01-29 value 64587.9121 1109949 CAD 2016-01-29 value 65357.14291109970 CHF 2016-01-29 value 111881.86811110012 DX 2016-01-29 value 91256.4103#df2volas Symbol Date Type Val
给出两个DataFrame:
#df1 value Symbol Date Type Value 1109914 AUD 2016-01-29 value 64587.9121 1109949 CAD 2016-01-29 value 65357.1429 1109970 CHF 2016-01-29 value 111881.8681 1110012 DX 2016-01-29 value 91256.4103 #df2 volas Symbol Date Type Value 1109915 AUD 2016-01-29 vola 518.5091 1109950 CAD 2016-01-29 vola 360.9474 1109971 CHF 2016-01-29 vola 767.1880 1110013 DX 2016-01-29 vola 495.8913 1110041 EUR 2016-01-29 vola 876.6861 1110062 GBP 2016-01-29 vola 462.6425 如果我想从df2向df1添加一个columnd,我自然会尝试这个: df1["volas"] = df2["Value"] 但是,这会返回一个带有nan值的Series(因此用这样填充新列): 1109921 NaN 1110089 NaN 1110138 NaN 1110159 NaN 1110257 NaN 1110450 NaN 1110618 NaN 1110667 NaN 1110688 NaN 但是,如果我这样做: market_values['Volas'] = [i for i in market_volas.Value] 值按预期分配. 为什么? 解决方法
存在df1中的索引作为df2中的索引不同的问题.
如果length od索引相等,则可以使用 df1["volas"] = df2["Value"].values print (df1) value Symbol Date Type Value volas 0 1109914 AUD 2016-01-29 value 64587.9121 518.5091 1 1109949 CAD 2016-01-29 value 65357.1429 360.9474 2 1109970 CHF 2016-01-29 value 111881.8681 767.1880 3 1110012 DX 2016-01-29 value 91256.4103 495.8913 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |