У меня есть словарь и DataFrame с теми же ключами / столбцами. Однако в DataFrame отсутствуют некоторые данные, которые я буду заполнять с помощью словаря. Это минимальный пример, и мой набор данных намного больше.
mydict = {'one': ['foo', 'bar'], 'two': ['foo', 'bar']}
mydf = pd.DataFrame({'one': ['N/A', 'bar'], 'two': ['foo', 'N/A'], 'foo': ['foo', 'bar'], 'bar': ['foo', 'bar']})
def myfunc(mydict):
for i,k in mydict.items():
for m in k:
mydf[i].replace(to_replace='N/A', value=mydf[m], inplace=True)
for f,g in mydf.iterrows():
for h in g:
if h != 'N/A':
myfunc(mydict)
for i,v in mydict.items():
mydf.drop(columns=v, inplace=True, errors='ignore')
Когда я запускаю свою функцию в большем наборе данных, ядро не останавливается. Что бы быстрее сделать это? Я хочу попробовать использовать df.apply () или векторизовать функцию, но не знаю как. Вывод для приведенного выше примера выглядит следующим образом:
one two
0 foo foo
1 bar bar