Chcę dodać dwie Serie w Pandach i używam funkcji add(), aby zrobić to w ten sposób:
import pandas as pd
import numpy as np
a = pd.Series([35000,71000,16000,5000],index=['Ohio','Texas','Oregon','Utah'])
b = pd.Series([np.nan,71000,16000,35000],index=['California', 'Texas', 'Oregon', 'Ohio'])
print(a.add(b, fill_value=0))
Wydrukuje:
California NaN
Ohio 70000.0
Oregon 32000.0
Texas 142000.0
Utah 5000.0
dtype: float64
Ta metoda sortuje moje indeksy, ale nie chcę
Co mogę zrobić lub Jakiej metody mogę użyć?
2 odpowiedzi
Oczekiwany wynik jest niejasny, ale zakładając, że chcesz zachować dokładny indeks a
, możesz zrobić:
a.add(b.reindex_like(a), fill_value=0)
Wynik:
Ohio 70000.0
Texas 142000.0
Oregon 32000.0
Utah 5000.0
dtype: float64
Jeśli indeksy nie mają znaczenia, możesz po prostu dodać values
serii, np.
c = a.values + b.values
Zwraca tę tablicę numpy:
array([ nan, 142000., 32000., 40000.])
Wygląda na to, że możesz również chcieć wpisać 0 dla nans — w takim przypadku spróbuj tego:
c = a.fillna(0).values + b.fillna(0).values
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.