Załóżmy, że mam ramkę danych 5 * 3, w której trzecia kolumna zawiera brakującą wartość
1 2 3
4 5 NaN
7 8 9
3 2 NaN
5 6 NaN
Mam nadzieję wygenerować wartość dla reguły opartej na brakujących wartościach dla pierwszej kolumny w drugim produkcie
1 2 3
4 5 20 <--4*5
7 8 9
3 2 6 <-- 3*2
5 6 30 <-- 5*6
Jak mogę to zrobić za pomocą ramki danych? Dzięki.
Jak dodać warunek, aby obliczyć brakującą wartość w ten sposób?
if 1st % 2 == 0 then 3rd = 1st * 2nd
else 3rd = 1st + 2nd
1 2 3
4 5 20 <-- 4*5 because 4%2==0
7 8 9
3 2 5 <-- 3+2 because 3%2==1
5 6 11 <-- 5+6 because 5%2==1
Odpowiedzi:
Zakładając, że trzy kolumny ramki danych to
a
,b
ic
. To jest to, czego chcesz:Pełny kod:
źródło
np.isnan
nie obsługuje danych nienumerycznych. Nie jest to problemem, ponieważ PO miał kolumny numeryczne i operacje arytmetyczne, ale poza tympd.isnull
jest lepszą alternatywą.Inna opcja:
df.loc[(pd.isnull(df.C)), 'C'] = df.A * df.B
źródło
Co powiesz na użycie
fillna()
metody ramki danych?df['C'].fillna(df.A * df.B)
źródło
Zakładając, że trzy kolumny w twojej ramce danych to
a
,b
ic
. Następnie możesz wykonać wymaganą operację w następujący sposób:źródło
np.where(pd.isnull(df.c), df.a * df.b, df.c)