填充空值

时间:2018-08-14 11:19:11

标签: python pandas dataframe

我有两个数据框。一个数据帧具有一列-“ CUSIP”,其中包含很多Null值。列看起来像这样

|Date |Ticker  |RP_ID   |CUSIP |SEDOL |<br/>

另一个数据框具有两列“ Ticker”和“ CUSIP”,如下所示
| Ticker | CUSIP |

我需要在第一列中填充CUSIP列使其与第二个数据帧中的相应“股票代码”匹配,如下所示。到目前为止,我已经做到了。有一个更好的方法吗。我大约有100000行。

for key in null_list:
if test_df1.loc[key]['Ticker'] in mapping:
     test_df1.loc[key,'CUSIP'] = mapping.get(test_df1.loc[key]['Ticker'])

其中null_list包含第一个数据帧的索引,该索引在CUSIP索引中具有空值,而映射是第二个数据帧的值的映射,以“ TICKER”作为键,以“ CUSIP”作为值。

由于信誉不够,我无法发布图片。

1 个答案:

答案 0 :(得分:0)

>>> pandas.merge(a,b, how='left', on='Ticker', suffixes=('_', '')).drop(['CUSIP_'], axis=1)

其中

a = pandas.DataFrame({'Ticker': ['A0', 'A1', 'A2', 'A3'], 'CUSIP':[None, None, None, None]})
b = pandas.DataFrame({'Ticker': ['A0', 'A1', 'A2', 'A3'], 'CUSIP':['I1', 'I2', 'I3', 'I4']})