Python Panda's-tutorial: DataFrame, datumbereik, gebruik van panda's
Wat zijn Panda's Python?
Pandas is een open-sourcebibliotheek waarmee u gegevensmanipulatie en -analyse kunt uitvoeren Python. Panda's Python bibliotheek biedt datamanipulatie en databewerkingen voor numerieke tabellen en tijdreeksen. Pandas biedt een eenvoudige manier om data te maken, manipuleren en te beheren. Het is gebouwd op NumPy, wat betekent dat het NumPy nodig heeft om te werken.
Waarom Panda's gebruiken?
Datawetenschappers maken gebruik van Panda’s in Python om de volgende voordelen:
- Kan gemakkelijk ontbrekende gegevens verwerken
- Het gebruikt Serie voor eendimensionale datastructuur en DataFrame voor multidimensionale datastructuur
- Het biedt een efficiënte manier om de gegevens te segmenteren
- Het biedt een flexibele manier om de gegevens samen te voegen, samen te voegen of opnieuw vorm te geven
- Het bevat een krachtige tijdreekstool om mee te werken
Kortom, Pandas is een nuttige bibliotheek gegevensanalyse. Het kan worden gebruikt om data te manipuleren en analyseren. Pandas bieden krachtige en eenvoudig te gebruiken datastructuren, evenals de middelen om snel bewerkingen op deze structuren uit te voeren.
Hoe Panda's installeren?
Nu in dit Python Panda's tutorial, we zullen leren hoe je Panda's installeert Python.
Raadpleeg onze tutorial om de Pandas-bibliotheek te installeren Hoe TensorFlow te installeren. Pandas wordt standaard geïnstalleerd. In afgelegen gevallen zijn panda's niet geïnstalleerd-
Je kunt Pandas installeren met:
- Anaconda: conda install -c anaconda panda's
- In Jupyter Notitieboekje :
import sys
!conda install --yes --prefix {sys.prefix} pandas
Wat is een Pandas-dataframe?
Panda's DataFrame is een tweedimensionale array met een gelabelde gegevensstructuur met verschillende kolomtypen. Een DataFrame is een standaardmanier om gegevens in tabelvorm op te slaan, met rijen om de informatie op te slaan en kolommen om de informatie een naam te geven. De prijs kan bijvoorbeeld de naam van een kolom zijn en 2,3,4 kunnen de prijswaarden zijn.
Data Frame is goed bekend bij statistici en andere databeoefenaars.
Hieronder een foto van een Pandas dataframe:
Wat is een serie?
Een reeks is een eendimensionale gegevensstructuur. Het kan elke datastructuur hebben, zoals geheel getal, float en string. Dit is handig als u berekeningen wilt uitvoeren of een eendimensionale array wilt retourneren. Een reeks kan per definitie niet meerdere kolommen hebben. Gebruik voor het laatste geval de dataframestructuur.
Python Pandas-serie heeft de volgende parameters:
- Gegevens: kan een lijst, woordenboek of scalaire waarde zijn
pd.Series([1., 2., 3.])
0 1.0 1 2.0 2 3.0 dtype: float64
U kunt de index toevoegen met index. Het helpt om de rijen een naam te geven. De lengte moet gelijk zijn aan de grootte van de kolom
pd.Series([1., 2., 3.], index=['a', 'b', 'c'])
Hieronder maak je een Panda-serie met een ontbrekende waarde voor de derde rij. Let op, ontbrekende waarden in Python worden genoteerd als “NaN.” Je kunt numpy gebruiken om ontbrekende waarde kunstmatig te creëren: np.nan
pd.Series([1,2,np.nan])
uitgang
0 1.0 1 2.0 2 NaN dtype: float64
Maak Panda's DataFrame
In deze Pandas DataFrame-tutorial leren we nu hoe we Python Panda's dataframe:
U kunt een numpy-array converteren naar een panda-dataframe met pd.Data frame(). Het tegenovergestelde is ook mogelijk. Om een Panda Data Frame naar een array te converteren, kunt u np.array() gebruiken
## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]]
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)
## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame: 0 1
0 1 2
1 3 4
Numpy array: [[1 2]
[3 4]]
U kunt ook een woordenboek gebruiken om een Pandas-dataframe te maken.
dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
| Leeftijd | Naam | |
|---|---|---|
| 0 | 30 | John |
| 1 | 40 | smid |
Gegevens over het bereik van panda's
Panda's hebben een handige API om een datumbereik te creëren. Laten we leren met Python Voorbeelden van panda's:
pd.data_range(datum,periode,frequentie):
- De eerste parameter is de startdatum
- De tweede parameter is het aantal perioden (optioneel als de einddatum is opgegeven)
- De laatste parameter is de frequentie: dag: 'D', maand: 'M' en jaar: 'Y.'
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)
uitgang
Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)
uitgang
Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')
Gegevens inspecteren
U kunt de kop of staart van de gegevensset controleren met head() of tail() voorafgegaan door de naam van het dataframe van de panda, zoals weergegeven in het onderstaande Pandas-voorbeeld:
Stap 1) Maak een willekeurige reeks met numpy. De reeks heeft 4 kolommen en 6 rijen
random = np.random.randn(6,4)
Stap 2) Vervolgens maakt u een dataframe met behulp van panda's.
Gebruik dates_m als index voor het dataframe. Het betekent dat elke rij een “naam” of een index krijgt, die overeenkomt met een datum.
Tenslotte geef je een naam aan de 4 kolommen met de argumentkolommen
# Create data with date
df = pd.DataFrame(random,
index=dates_m,
columns=list('ABCD'))
Stap 3) Hoofdfunctie gebruiken
df.head(3)
| A | B | C | D | |
|---|---|---|---|---|
| 2030-01-31 | 1.139433 | 1.318510 | -0.181334 | 1.615822 |
| 2030-02-28 | -0.081995 | -0.063582 | 0.857751 | -0.527374 |
| 2030-03-31 | -0.519179 | 0.080984 | -1.454334 | 1.314947 |
Stap 4) Gebruik van de staartfunctie
df.tail(3)
| A | B | C | D | |
|---|---|---|---|---|
| 2030-04-30 | -0.685448 | -0.011736 | 0.622172 | 0.104993 |
| 2030-05-31 | -0.935888 | -0.731787 | -0.558729 | 0.768774 |
| 2030-06-30 | 1.096981 | 0.949180 | -0.196901 | -0.471556 |
Stap 5) Een uitstekende oefening om een idee te krijgen van de gegevens is het gebruik van write(). Het biedt de aantallen, gemiddelde, std, min, max en percentiel van de dataset.
df.describe()
| A | B | C | D | |
|---|---|---|---|---|
| tellen | 6.000000 | 6.000000 | 6.000000 | 6.000000 |
| gemiddelde | 0.002317 | 0.256928 | -0.151896 | 0.467601 |
| soa | 0.908145 | 0.746939 | 0.834664 | 0.908910 |
| Min | -0.935888 | -0.731787 | -1.454334 | -0.527374 |
| 25% | -0.643880 | -0.050621 | -0.468272 | -0.327419 |
| 50% | -0.300587 | 0.034624 | -0.189118 | 0.436883 |
| 75% | 0.802237 | 0.732131 | 0.421296 | 1.178404 |
| max | 1.139433 | 1.318510 | 0.857751 | 1.615822 |
Segmentgegevens
Het laatste punt hiervan Python Panda's-tutorial gaat over het segmenteren van een panda-dataframe.
U kunt de kolomnaam gebruiken om gegevens in een bepaalde kolom te extraheren, zoals weergegeven in het onderstaande Pandas-voorbeeld:
## Slice ### Using name df['A'] 2030-01-31 -0.168655 2030-02-28 0.689585 2030-03-31 0.767534 2030-04-30 0.557299 2030-05-31 -1.547836 2030-06-30 0.511551 Freq: M, Name: A, dtype: float64
Om meerdere kolommen te selecteren, moet u twee keer het haakje gebruiken, [[..,..]]
Het eerste paar haakjes betekent dat u kolommen wilt selecteren, het tweede paar haakjes geeft aan welke kolommen u wilt retourneren.
df[['A', 'B']].
| A | B | |
|---|---|---|
| 2030-01-31 | -0.168655 | 0.587590 |
| 2030-02-28 | 0.689585 | 0.998266 |
| 2030-03-31 | 0.767534 | -0.940617 |
| 2030-04-30 | 0.557299 | 0.507350 |
| 2030-05-31 | -1.547836 | 1.276558 |
| 2030-06-30 | 0.511551 | 1.572085 |
Je kunt de rijen opsplitsen met:
De onderstaande code retourneert de eerste drie rijen
### using a slice for row df[0:3]
| A | B | C | D | |
|---|---|---|---|---|
| 2030-01-31 | -0.168655 | 0.587590 | 0.572301 | -0.031827 |
| 2030-02-28 | 0.689585 | 0.998266 | 1.164690 | 0.475975 |
| 2030-03-31 | 0.767534 | -0.940617 | 0.227255 | -0.341532 |
De loc-functie wordt gebruikt om kolommen op naam te selecteren. Zoals gebruikelijk staan de waarden voor de komma voor de rijen en erna voor de kolom. U moet de haakjes gebruiken om meer dan één kolom te selecteren.
## Multi col df.loc[:,['A','B']]
| A | B | |
|---|---|---|
| 2030-01-31 | -0.168655 | 0.587590 |
| 2030-02-28 | 0.689585 | 0.998266 |
| 2030-03-31 | 0.767534 | -0.940617 |
| 2030-04-30 | 0.557299 | 0.507350 |
| 2030-05-31 | -1.547836 | 1.276558 |
| 2030-06-30 | 0.511551 | 1.572085 |
Er is een andere methode om meerdere rijen en kolommen in Pandas te selecteren. Je kunt iloc[] gebruiken. Deze methode gebruikt de index in plaats van de kolomnaam. De onderstaande code retourneert hetzelfde dataframe als hierboven
df.iloc[:, :2]
| A | B | |
|---|---|---|
| 2030-01-31 | -0.168655 | 0.587590 |
| 2030-02-28 | 0.689585 | 0.998266 |
| 2030-03-31 | 0.767534 | -0.940617 |
| 2030-04-30 | 0.557299 | 0.507350 |
| 2030-05-31 | -1.547836 | 1.276558 |
| 2030-06-30 | 0.511551 | 1.572085 |
Zet een kolom neer
Je kunt kolommen neerzetten met pd.drop()
df.drop(columns=['A', 'C'])
| B | D | |
|---|---|---|
| 2030-01-31 | 0.587590 | -0.031827 |
| 2030-02-28 | 0.998266 | 0.475975 |
| 2030-03-31 | -0.940617 | -0.341532 |
| 2030-04-30 | 0.507350 | -0.296035 |
| 2030-05-31 | 1.276558 | 0.523017 |
| 2030-06-30 | 1.572085 | -0.594772 |
Aaneenschakeling
U kunt twee DataFrame in Pandas aaneenschakelen. U kunt pd.concat() gebruiken
Allereerst moet u twee DataFrames maken. Tot nu toe gaat het goed, u bent al bekend met het maken van dataframes
import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
'Age': ['25', '30', '50']},
index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
'Age': ['26', '11']},
index=[3, 4])
Ten slotte voegt u de twee DataFrame samen
df_concat = pd.concat([df1,df2]) df_concat
| Leeftijd | naam | |
|---|---|---|
| 0 | 25 | John |
| 1 | 30 | smid |
| 2 | 50 | Paul |
| 3 | 26 | Adam |
| 4 | 11 | smid |
Drop_duplicaten
Als een dataset dubbel informatiegebruik kan bevatten, is `drop_duplicates` een eenvoudig uit te sluiten dubbele rij. Je kunt zien dat `df_concat` een dubbele waarneming heeft, `Smith` komt twee keer voor in de kolom `naam.`
df_concat.drop_duplicates('name')
| Leeftijd | naam | |
|---|---|---|
| 0 | 25 | John |
| 1 | 30 | smid |
| 2 | 50 | Paul |
| 3 | 26 | Adam |
Sorteer waarden
U kunt waarde sorteren met sort_values
df_concat.sort_values('Age')
| Leeftijd | naam | |
|---|---|---|
| 4 | 11 | smid |
| 0 | 25 | John |
| 3 | 26 | Adam |
| 1 | 30 | smid |
| 2 | 50 | Paul |
Hernoemen: wijziging van index
U kunt hernoemen gebruiken om de naam van een kolom in Pandas te wijzigen. De eerste waarde is de huidige kolomnaam en de tweede waarde is de nieuwe kolomnaam.
df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
| Leeftijd_ppl | Achternaam | |
|---|---|---|
| 0 | 25 | John |
| 1 | 30 | smid |
| 2 | 50 | Paul |
| 3 | 26 | Adam |
| 4 | 11 | smid |
Samenvatting
Hieronder vindt u een samenvatting van de meest bruikbare methode voor data science met Panda's
| data importeren | lees_csv |
|---|---|
| serie maken | -Series |
| Maak een dataframe | dataframe |
| Datumbereik maken | DATE_RANGE |
| kop terug | hoofd |
| staart terug | staart |
| Beschrijven | beschrijven |
| segmenteren met naam | gegevensnaam['kolomnaam'] |
| Snijd met behulp van rijen | gegevens_naam[0:5] |

