Hej där! Som leverantör av NAN -produkter har jag hanterat massor av data i PANDAS -dataframes, och en irriterande fråga som alltid dyker upp är dessa 'nan' värden. Du vet, de små tomma ämnen som kan krossa hela din analys om du inte är försiktig. I den här bloggen kommer jag att dela några tips om hur man hanterar dessa 'nan' värden som en proffs.
Först och främst, låt oss prata om vad 'Nan' faktiskt betyder. 'Nan' står för 'inte ett nummer', och det är i princip Pandas 'sätt att säga att det saknas eller ogiltig data i din dataframe. Det kan hända av alla möjliga skäl - kanske informationen inte samlades in ordentligt, eller så fanns ett fel i datainmatningen. Oavsett orsaken, "nan" -värden kan verkligen kasta en skiftnyckel i din dataanalys, så det är viktigt att veta hur man ska hantera dem.
Ett av de enklaste sätten att hantera 'nan' -värden är att bara släppa dem. Pandas har en riktigt praktisk metod som heterdroppe ()som du kan använda för att bli av med alla rader eller kolumner som innehåller 'nan' -värden. Här är ett exempel:
import pandas as pd import numpy as np # Create a sample DataFrame with 'nan' values data = { 'col1': [1, 2, np.nan, 4], 'col2': [5, np.nan, 7, 8], 'col3': [9, 10, 11, np.nan] } df = pd.DataFrame(data) # Drop rows with 'nan' values df_droped_rows = df.dropna () # släpp kolumner med 'nan' värden df_droped_cols = df.dropna (axel = 1)
I koden ovan,droppe ()Utan några argument kommer att släppa några rader som innehåller minst ett 'nan' värde. Om du passeraraxel = 1, det kommer att släppa kolumner istället. Den här metoden är bra om du har mycket data och "nan" -värdena är relativt sällsynta, men det kan också leda till en betydande förlust av data om det finns många "nan" -värden.
Ett annat alternativ är att fylla "nan" -värdena med ett specifikt värde. Pandas har en metod som heterfillna()som du kan använda för att göra detta. Du kan fylla "NAN" -värdena med ett konstant värde, medel, median eller läge för kolumnen, eller till och med föregående eller nästa värde i kolumnen. Här är några exempel:
# Fill 'nan' values with a constant value df_filled_constant = df.fillna(0) # Fill 'nan' values with the mean of the column df_filled_mean = df.fillna(df.mean()) # Fill 'nan' values with the previous value in the column df_filled_prev = df.fillna(method='ffill') # Fill 'nan' values with the next value in Kolumnen df_filled_next = df.fillna (metod = 'bfill')
Att fylla "nan" -värdena kan vara ett bra sätt att bevara dina data, men du måste vara försiktig med vilket värde du använder för att fylla dem. Att använda medelvärdet eller medianen kan fungera bra om data normalt distribueras, men det kanske inte är lämpligt om uppgifterna har många outliers.
Om du har att göra med tidsseriedata kanske du vill använda interpolering för att fylla "nan" -värdena. Interpolering är en metod för att uppskatta värden mellan kända datapunkter. Pandas har en metod som heterinterpolera ()som du kan använda för att göra detta. Här är ett exempel:
# Interpolera 'nan' värden df_interpolated = df.interpolat ()
Interpolering kan vara ett bra sätt att fylla 'NAN' -värden i tidsseriedata eftersom det tar hänsyn till trenden för uppgifterna. Det är emellertid viktigt att notera att interpolering bara är en uppskattning och de faktiska värdena kan vara annorlunda.
Låt oss nu prata om några mer avancerade tekniker för att hantera 'nan' -värden. Ett tillvägagångssätt är att använda maskininlärningsalgoritmer för att förutsäga de saknade värdena. Du kan träna en modell på icke-saknade data och sedan använda den för att förutsäga "nan" -värdena. Detta kan vara ett mer exakt sätt att fylla "NAN" -värdena, men det kräver också mer beräkningsresurser och expertis.
Ett annat tillvägagångssätt är att använda flera imputation. Flera imputation är en statistisk teknik som innebär att skapa flera kopior av dataframe, fylla "NAN" -värdena i varje kopia med en annan metod och sedan kombinera resultaten. Detta kan hjälpa till att minska förspänningen och osäkerheten i samband med att fylla "nan" -värdena.
Enligt min erfarenhet som NAN -leverantör har jag funnit att en kombination av dessa tekniker vanligtvis fungerar bäst. Till exempel kan jag börja med att släppa rader eller kolumner med ett stort antal "nan" -värden och sedan fylla de återstående "nan" -värdena med en kombination av konstantvärden, medelvärdet och interpolering. Och om jag behöver en mer exakt uppskattning kan jag använda maskininlärning eller flera imputation.
Innan jag avslutas vill jag nämna ett par produkter som kan vara av intresse för dig. Om du är i tryckbranschen kanske du vill kolla inFärgämne. Det är en högkvalitativ bläck som är perfekt för utskrift på olika material. Och om du är i läkemedelsindustrin kan du vara intresserad avFlorfenicol Cas nr: 73231-34-2ochOxytetracyklin hydroklorid HCL CAS nr: 2058-46-0. Dessa är båda API -farmaceutiska råvaror som används allmänt vid produktion av antibiotika.
Om du är intresserad av någon av våra NAN -produkter eller har några frågor om att hantera 'nan' -värden i dina data, tveka inte att nå en upphandlingsdiskussion. Vi är alltid glada att hjälpa!


Referenser:
- McKinney, W. (2012). Python för dataanalys: Data Wrangling med pandor, numpy och ipython. O'Reilly Media.
- Vanderplas, J. (2016). Python Data Science Handbook: Väsentliga verktyg för att arbeta med data. O'Reilly Media.
