Rozważmy następujący dataframeza pomocą słownika zastąpienie wartości kolumny o podanych numerach indeksów na dataframe PANDAS
df_test = pd.DataFrame({'a' : [1, 2, 8], 'b' : [np.nan, np.nan, 5], 'c' : [np.nan, np.nan, 4]})
df_test.index = ['one', 'two', 'three']
co daje
a b c
one 1 NaN NaN
two 2 NaN NaN
three 8 5 4
mam słownika wymiany rzędu dla kolumn B i C . Na przykład:
{ 'one': [3.1, 2.2], 'two' : [8.8, 4.4] }
gdzie 3.1 i 8.8 zastępuje kolumna B i 2.2 i 4.4 zastępuje kolumna C, tak, że wynik jest
a b c
one 1 3.1 2.2
two 2 8.8 4.4
three 8 5 4
wiem, jak wprowadzić te zmiany z pętli for:
index_list = ['one', 'two']
value_list_b = [3.1, 8.8]
value_list_c = [2.2, 4.4]
for i in range(len(index_list)):
df_test.ix[df_test.index == index_list[i], 'b'] = value_list_b[i]
df_test.ix[df_test.index == index_list[i], 'c'] = value_list_c[i]
ale jestem pewien, że jest lepszy i szybszy sposób korzystania ze słownika!
Chyba można to zrobić za pomocą metody DataFrame.replace DataFrame.replace, ale nie mogłem tego rozgryźć.
Dzięki za pomoc,
cd
To działa dla mnie, wielkie dzięki! – cd98