Я обрабатываю входящие данные пользователя.Я получаю DataFrame
h
, который должен содержать все float
, но содержит несколько строк:
>>> h = pd.DataFrame(np.random.rand(3, 2), columns=['a', 'b'])
>>> h.loc[0, 'a'] = 'bad'
>>> h.loc[1, 'b'] = 'robot'
>>> h
a b
0 bad 0.747314
1 0.921919 robot
2 0.754256 0.664455
Я обрабатываю и устанавливаю строки на np.nan
(я понимаю, np.nan
является float
, но это для иллюстрации):
>>> hh = h.copy()
>>> hh.loc[0, 'a'] = np.nan
>>> hh.loc[1, 'b'] = np.nan
>>> hh
a b
0 NaN 0.747314
1 0.921919 NaN
2 0.754256 0.664455
У меня есть DataFrame
с ожидаемыми значениями (или dict
):
>>> g = pd.DataFrame({'a': ['foo'], 'b': ['bar']}, index=h.index)
>>> g
a b
0 foo bar
1 foo bar
2 foo bar
, который я использую для заполнения гденеверные данные:
>>> hh.fillna(g)
a b
0 foo 0.747314
1 0.921919 bar
2 0.754256 0.664455
Мне нужно также включить данные ожидаемые .Таким образом, результат должен быть:
>>> magic(hh, g)
a b
0 rec=bad; exp=foo 0.747314
1 0.921919 rec=robot; exp=bar
2 0.754256 0.664455
Как я могу создать такой результат?