Hej tamo! Kao dobavljač nan proizvoda bavio sam se tonom podataka u Pandasu DataFrames-u, a jedno masnoće koje se uvijek pojavljuju su te 'nan' vrijednosti. Znate, te male praznine koje mogu zabrljati cijelu analizu ako niste oprezni. U ovom blogu podijelit ću neke savjete o tome kako se nositi s tim "nan" vrijednostima poput profesionalaca.
Prvo, razgovarajmo o tome što zapravo znači "nan". 'Nan' stoji za 'ne broj', a u osnovi je Pandasov način da kaže da u vašem datuframu nedostaju ili nevaljane podatke. To se može dogoditi za sve razloge - možda podaci nisu prikupljeni pravilno, ili je došlo do pogreške u unosu podataka. Bez obzira na uzrok, vrijednosti "Nan" zaista mogu baciti ključ u vašu analizu podataka, pa je važno znati kako se nositi s njima.
Jedan od najjednostavnijih načina za rješavanje vrijednosti "Nan" je samo da ih ispustite. Pandas ima zaista praktičnu metodu koja se zovepad ()da možete koristiti za uklanjanje bilo kakvih redaka ili stupaca koji sadrže vrijednosti "Nan". Evo primera:
Uvezite Pande kao PD uvoz Numpy kao NP # Kreirajte uzorak DataFrame s "nan" vrijednostima = {'col1': [5, 'col2': [5], 'col3': [9], 'col3': [9, 10, 11, np.nan]} DF = pd.dataframe (podaci) # ispuštaju redove s 'nan' vrijednostima df_dropped_rows = df.dropna () # ispupčene stupce sa "nan" vrijednostima df_dropped_cols = df.dropna (Axis = 1)
U gornjem kodu,pad ()Bez ikakvih argumenata napustit će sve retke koji sadrže barem jednu 'nan' vrijednost. Ako prođeteAxis = 1, umjesto toga će ispustiti stupce. Ova metoda je odlična ako imate puno podataka, a vrijednosti "Nan" su relativno rijetke, ali može dovesti i do značajnog gubitka podataka ako postoji puno vrijednosti "Nan" vrijednosti.
Druga opcija je ispuniti vrijednosti "nan" sa specifičnom vrijednošću. Pandas ima metodu koja se zoveIspuniti ()da možete koristiti za to. Možete popuniti vrijednosti "nan" sa stalnom vrijednošću, srednjom, srednjom ili načinom stupca ili čak prethodne ili sljedeće vrijednosti u stupcu. Evo nekoliko primjera:
# Ispunite "Nan" vrijednosti sa konstantnom vrijednošću DF_F_F_F_F_F. FILMENA (0) # Nan 'vrijednosti pomoću stupca DF_FILL (DF.Mean ()) # ispunite "Nan" (DF.Mean') u odnosu na kolone u stupcu DF_FIELL_PREV = 'FLFLING') # ispunite "Nan" vrijednosti u sljedeću vrijednost u sljedećoj vrijednosti Stupac DF_FIELL_NEXT = DF.FILCINA (metoda = 'b catill')
Ispunjavanje vrijednosti "Nan" može biti dobar način za sačuvanje vaših podataka, ali morate biti oprezni u koju vrijednost koristite za ispunjavanje. Korištenje srednje ili srednjeg može dobro funkcionirati ako se podaci normalno distribuiraju, ali možda neće biti prikladno ako podaci ima puno odmetnika.
Ako se bavite podacima o vremenskim serijama, možda biste željeli koristiti Interpolaciju da biste ispunili vrijednosti "nan". Interpolacija je metoda procjene vrijednosti između poznatih podataka podataka. Pandas ima metodu koja se zoveInterpolate ()da možete koristiti za to. Evo primera:
# Interpolirati 'nan' vrijednosti df_interpolated = df.interpolate ()
Interpolacija može biti odličan način da popunite vrijednosti "Nan" u vremenskim serijama, jer uzima u obzir trend podataka. Međutim, važno je napomenuti da je interpolacija samo procjena, a stvarne vrijednosti mogu biti različite.
Sada razgovarajmo o nekim naprednijim tehnikama za rukovanje vrijednostima "Nan". Jedan je pristup upotreba algoritmi za mašinski učenje za predviđanje nestalih vrijednosti. Možete obučiti model na ne-nedostajućim podacima, a zatim ga koristiti za predviđanje vrijednosti "nan". Ovo može biti precizniji način ispunjavanja vrijednosti "nan", ali zahtijeva i računarske resurse i stručnost.
Drugi pristup je upotreba višestruke imputacije. Višestruka imputacija je statistička tehnika koja uključuje stvaranje višestrukih kopija DataFrame-a, ispunjavajući vrijednosti "Nan" u svakoj kopiji koristeći različitu metodu, a zatim kombinirajući rezultate. To može pomoći u smanjenju pristranosti i nesigurnosti povezane sa popunjavanjem vrijednosti "Nan".
U mom iskustvu kao dobavljaču Nan, otkrio sam da kombinacija ovih tehnika obično najbolje funkcionira. Na primjer, mogu započeti ispuštanjem redaka ili stupca s velikim brojem "nan" vrijednosti, a zatim ispunite preostale vrijednosti "Nan" koristeći kombinaciju stalnih vrijednosti, srednje vrijednosti i interpolacije. A ako mi treba preciznija procjena, mogu koristiti mašinsko učenje ili višestruku imputaciju.
Prije nego što završim, želim spomenuti nekoliko proizvoda koji bi vas mogli od interesa za vas. Ako ste u industriji štampanja, možda biste željeli odjavitiDye sublimacijska mastila. To je visokokvalitetna tinta koja je savršena za ispis na raznim materijalima. A ako ste u farmaceutskoj industriji, možda će vas zanimatiFlorenicol CAS br.: 73231-34-2iOxytetraciklin hidroklorid HCL CAS br.: 2058-46-0. Ovo su i API farmaceutske sirovine koje se široko koriste u proizvodnji antibiotika.
Ako vas zanima bilo koji od naših nanskih proizvoda ili imate bilo kakvih pitanja o rukovanju vrijednostima "Nan" u svojim podacima, ne ustručavajte se da posegnete za raspravu o nabavci. Uvek smo sretni što smo pomogli!


Reference:
- McKinney, W. (2012). Python za analizu podataka: Podaci snimljeni sa pandom, numpy i ipython. O'Reilly Media.
- Vanderplas, J. (2016). Priručnik za nauku o podacima Python: Bitni alati za rad sa podacima. O'Reilly Media.
