Pandas Cheat Sheet for Data Science in Python

⚡ Έξυπνη Σύνοψη

Τα φύλλα ελέγχου (cheat sheets) του Panda συμπυκνώνουν τις πιο χρησιμοποιούμενες εντολές της βιβλιοθήκης σε μία σελίδα. Αυτή η αναφορά τις ομαδοποιεί ανά εργασία: εγκατάσταση, δημιουργία Σειρών και Πλαισίων Δεδομένων (Series and DataFrames), εισαγωγή αρχείων, επιλογή γραμμών, καθαρισμός δεδομένων, εφαρμογή συναρτήσεων και εξαγωγή αποτελεσμάτων.

  • 🔘 Δύο δομές: Η σειρά περιέχει μία διάσταση με ετικέτα, ενώ το DataFrame περιέχει δύο με μικτούς τύπους στηλών.
  • ☑️ Εισαγάγετε οτιδήποτε: Οι read_csv, read_excel, read_sql, read_json και read_html φορτώνουν αρχεία σε ένα DataFrame.
  • Ακριβής επιλογή: Η loc επιλέγει κατά ετικέτα, η iloc κατά θέση και οι boolean μάσκες φιλτράρουν τις γραμμές κατά συνθήκη.
  • 🧪 Καθαρίστε αξιόπιστα: isnull, dropna, fillna, drop_duplicates και αντικαθιστά τα κενά στις λαβές και τις επαναλαμβανόμενες εγγραφές.
  • Γρήγορος έλεγχος: σχήμα, πληροφορίες, τύποι δεδομένων και περιγραφή, συνοψίστε τη δομή και τα στατιστικά στοιχεία πριν ξεκινήσει η ανάλυση.
  • ⚠️ Σημείωση έκδοσης: Το pandas 3.0 ενεργοποιεί την Αντιγραφή κατά την Εγγραφή από προεπιλογή, επομένως η αλυσιδωτή ανάθεση δημιουργεί ένα σφάλμα.

Pandas Cheat Sheet for Data Science in Python

Τι είναι ένα φύλλο οδηγιών χρήσης για τα Πάντα;

Η βιβλιοθήκη Pandas διαθέτει εκατοντάδες συναρτήσεις, ωστόσο μόνο ένα μικρό υποσύνολο εμφανίζεται στην καθημερινή εργασία. A Φύλλο με συμβουλές για τα πάντα είναι μια αναφορά μίας σελίδας που απαριθμεί αυτές τις εντολές, ομαδοποιημένες ανάλογα με την εργασία που εκτελούν.

Καλύπτει τις δομές Series και DataFrame, την εισαγωγή και εξαγωγή αρχείων, την επιλογή και την ταξινόμηση δεδομένων, τον καθαρισμό τιμών και την εφαρμογή συναρτήσεων. Κάθε ενότητα παρακάτω συνδυάζει μια σύντομη εξήγηση με εκτελέσιμο κώδικα, επομένως η σελίδα λειτουργεί και ως υπενθύμιση για τις πληροφορίες σας. δεξιότητες ανάλυσης δεδομένων.

👉 Κατεβάστε το PDF του Cheat Sheet εδώ

Πώς να εγκαταστήσετε και να εισαγάγετε Panda

Δύο εντολές ρυθμίζουν τα Panda και εκτελούνται και οι δύο σε ένα τερματικό ή ένα Jupyter σημειωματάριο κύτταρο.

Βήμα 1) Εγκατάσταση Pandas

Εκτελέστε αυτήν τη λειτουργία μία φορά ανά περιβάλλον. Προσθέστε ένα θαυμαστικό στο κελί ενός σημειωματαρίου ως πρόθεμα.

pip install pandas

Βήμα 2) Εισαγωγή Panda

Εισαγάγετε το πακέτο με το ψευδώνυμο pd, κάτι που κάθε παράδειγμα εδώ προϋποθέτει.

import pandas as pd

Μπορείτε πλέον να καλείτε συναρτήσεις Pandas για να χειρίζεστε, να αναλύετε και να καθαρίζετε δεδομένα. Οι παρακάτω ενότητες τις παραθέτουν με τη σειρά που τις αναζητάτε συνήθως.

Δομές δεδομένων Pandas

Το Pandas έχει δύο δομές δεδομένων, Σειρές και Πλαίσιο δεδομένωνΚαι οι δύο είναι πίνακες με ετικέτες και μπορούν να περιέχουν οποιονδήποτε τύπο δεδομένων. Η μόνη διαφορά είναι η διαστασιολόγηση: μια Σειρά είναι ένας μονοδιάστατος πίνακας και ένα DataFrame είναι ένας δισδιάστατος πίνακας που δημιουργείται από μουδιασμένος πίνακες από κάτω.

Χαρακτηριστικό Σειρές Πλαίσιο δεδομένων
Διαστάσεις μονοδιάστατη Δισδιάστατη
Συγκρατεί Μία στήλη με μία ετικέτα Πολλές στήλες, μικτοί τύποι d
Κατασκευαστής pd.Series() pd.DataFrame()

1. Σειρά

Είναι ένας μονοδιάστατος πίνακας με ετικέτες. Μπορεί να περιέχει οποιονδήποτε τύπο δεδομένων και None γίνεται μια ελλείπουσα τιμή.

s = pd.Series([2, -4, 6, 3, None], index=['A', 'B', 'C', 'D', 'E'])

2. DataFrame

Είναι ένας δισδιάστατος πίνακας με ετικέτες. Μπορεί να περιέχει οποιονδήποτε τύπο δεδομένων και διαφορετικά μεγέθη στηλών.

data = {'RollNo' : [101, 102, 75, 99],
        'Name' : ['Mithlesh', 'Ram', 'Rudra', 'Mithlesh'],
        'Course' : ['Nodejs', None, 'Nodejs', 'JavaScript']
}
df = pd.DataFrame(data, columns=['RollNo', 'Name', 'Course'])
df.head()

Το εκτυπώσιμο φύλλο οδηγιών χρήσης παρακάτω συγκεντρώνει τις ίδιες εντολές σε μία σελίδα.

Εκτυπώσιμο φύλλο εξαπάτησης Pandas με λίστα εντολών Series και DataFrame

Εισαγωγή δεδομένων

Τα Panda μπορούν να διαβάσουν πολλούς τύπους αρχείων απευθείας σε ένα DataFrame. Κάθε αναγνώστης παρακάτω επιστρέφει ένα, και read_csv () είναι το πιο χρησιμοποιούμενο.

# Import a CSV file pd
pd.read_csv(filename)

# Import a TSV file
pd.read_table(filename)

# Import a Excel file pd
pd.read_excel(filename)

# Import a SQL table/database
pd.read_sql(query, connection_object)

# Import a JSON file
pd.read_json(json_string)

# Import a HTML file
pd.read_html(url)

# From clipboard to read_table()
pd.read_clipboard()

# From dict
pd.DataFrame(dict)

Επιλογή

Μπορείτε να επιλέξετε στοιχεία με βάση την τοποθεσία τους ή με βάση την ετικέτα ευρετηρίου τους. Η ίδια σύνταξη με αγκύλες επιλέγει γραμμές, στήλες και τμήματα και από τις δύο δομές.

1. Σειρά

# Accessing one element from Series
s['D']

# Accessing all elements between two given indices
s['A':'C']

# Accessing all elements from starting till given index
s[:'C']

# Accessing all elements from given index till end
s['B':]

2. DataFrame

# Accessing one column df
df['Name']

# Accessing rows from after given row
df[1:]

# Accessing till before given row
df[:1]

# Accessing rows between two given rows
df[1:2]

Επιλογή με Boolean Indexing και Setting

Χρήση iloc και iat για ακέραιες θέσεις, και loc και at για ετικέτες.

1. Κατά θέση

df.iloc[0, 1]

df.iat[0, 1]

2. Με ετικέτα

df.loc[[0],  ['Name']]

3. Με ετικέτα/θέση

df.loc[2] # Both are same
df.iloc[2]

4. Ευρετηρίαση Boolean

Μια boolean μάσκα διατηρεί μόνο γραμμές όπου η συνθήκη είναι True. Το δεύτερο παράδειγμα προσθέτει τον τελεστή NOT ~, επομένως επιστρέφει επίσης τιμές που δεν είναι πάνω από 1.

# Series s where value is > 1
s[(s > 0)]

# Series s where value is <-2 or >1
s[(s < -2) | ~(s > 1)]

# Use filter to adjust DataFrame
df[df['RollNo']>100]

# Set index a of Series s to 6
s['D'] = 10
s.head()

Καθαρισμός δεδομένων

Για Python Για τους σκοπούς του φύλλου εξαπάτησης καθαρισμού δεδομένων, μπορείτε να εκτελέσετε τις ακόλουθες λειτουργίες:

  • Μετονομάστε στήλες χρησιμοποιώντας το rename() μέθοδος.
  • Ενημέρωση τιμών χρησιμοποιώντας το at[] or iat[] μέθοδος για την πρόσβαση και την τροποποίηση συγκεκριμένων στοιχείων.
  • Δημιουργήστε ένα αντίγραφο μιας Σειράς ή ενός DataFrame χρησιμοποιώντας το copy() μέθοδος.
  • Ελέγξτε για τιμές NULL χρησιμοποιώντας το isnull() μέθοδο και αποθέστε τα χρησιμοποιώντας το dropna() μέθοδος.
  • Ελέγξτε για διπλότυπες τιμές χρησιμοποιώντας το duplicated() μέθοδος. Αποθέστε τα χρησιμοποιώντας το drop_duplicates() μέθοδος.
  • Αντικαταστήστε τις τιμές NULL χρησιμοποιώντας το fillna() μέθοδος με καθορισμένη τιμή.
  • Αντικαταστήστε τις τιμές χρησιμοποιώντας το replace() μέθοδος.
  • Ταξινόμηση τιμών χρησιμοποιώντας το sort_values() μέθοδος.
  • Τιμές κατάταξης χρησιμοποιώντας το rank() μέθοδος.
# Renaming columns
df.columns = ['a','b','c']
df.head()

# Mass renaming of columns
df = df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'})

# Or use this edit in same DataFrame instead of in copy
df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'}, inplace=True)
df.head()

# Counting duplicates in a column
df.duplicated(subset='Name')

# Removing entire row that has duplicate in given column
df.drop_duplicates(subset=['Name'])

# You can choose which one keep - by default is first
df.drop_duplicates(subset=['Name'], keep='last')

# Checks for Null Values
s.isnull()

# Checks for non-Null Values - reverse of isnull()
s.notnull()

# Checks for Null Values df
df.isnull()

# Checks for non-Null Values - reverse of isnull()
df.notnull()

# Drops all rows that contain null values
df.dropna()

# Drops all columns that contain null values
df.dropna(axis=1)

# Replaces all null values with 'Guru99'
df.fillna('Guru99')

# Replaces all null values with the mean
s.fillna(s.mean())

# Converts the datatype of the Series to float
s.astype(float)

# Replaces all values equal to 6 with 'Six'
s.replace(6,'Six')

# Replaces all 2 with 'Two' and 6 with 'Six'
s.replace([2,6],['Two','Six'])

# Drop from rows (axis=0)
s.drop(['B',  'D'])

# Drop from columns(axis=1)
df.drop('Name', axis=1)

# Sort by labels with axis
df.sort_index()

# Sort by values with axis
df.sort_values(by='RollNo')

# Ranking entries
df.rank()

# s1 is pointing to same Series as s
s1 = s

# s_copy of s, but not pointing same Series
s_copy = s.copy()

# df1 is pointing to same DataFrame as df
df1 = s

# df_copy of df, but not pointing same DataFrame
df_copy = df.copy()

Σημειώστε ότι s1 = s δημιουργεί μόνο ένα δεύτερο όνομα για το ίδιο αντικείμενο, ποτέ ένα αντίγραφο — γι' αυτό copy() το ακολουθεί.

Ανάκτηση πληροφοριών

Μπορείτε να εκτελέσετε αυτές τις λειτουργίες για να ανακτήσετε πληροφορίες:

  • Χρησιμοποιήστε το shape χαρακτηριστικό για να λάβετε τον αριθμό των γραμμών και των στηλών.
  • Χρησιμοποιήστε το head() or tail() μέθοδος για να λάβετε τις πρώτες ή τις τελευταίες γραμμές ως δείγμα.
  • Χρησιμοποιήστε το info(), describe() or dtypes μέθοδος για τη λήψη πληροφοριών σχετικά με τον τύπο δεδομένων, τον αριθμό, τον μέσο όρο, την τυπική απόκλιση, τις ελάχιστες και μέγιστες τιμές.
  • Χρησιμοποιήστε το count(), min(), max(), sum(), mean() και median() μέθοδοι για την απόκτηση συγκεκριμένων στατιστικών πληροφοριών για τιμές.
  • Χρησιμοποιήστε το loc[] μέθοδος για να λάβετε μια γραμμή.
  • Χρησιμοποιήστε το groupby() Μέθοδος για την εφαρμογή της συνάρτησης GROUP BY για την ομαδοποίηση παρόμοιων τιμών σε μια στήλη ενός DataFrame.

1. Βασικές πληροφορίες

# Counting all elements in Series
len(s)

# Counting all elements in DataFrame
len(df)

# Prints number of rows and columns in dataframe
df.shape

# Prints first 10 rows by default, if no value set
df.head(10)

# Prints last 10 rows by default, if no value set
df.tail(10)

# For counting non-Null values column-wise
df.count()

# For range of index df
df.index

# For name of attributes/columns
df.columns

# Index, Data Type and Memory information
df.info()

# Datatypes of each column
df.dtypes

# Summary statistics for numerical columns
df.describe()

2. Περίληψη

# For adding all values column-wise
df.sum()

# For min column-wise
df.min()

# For max column-wise
df.max()

# For mean value in number column
df.mean()

# For median value in number column
df.median()

# Count non-Null values
s.count()

# Count non-Null values
df.count()

# Return Series of given column
df['Name'].tolist()

# Name of columns
df.columns.tolist()

# Creating subset
df[['Name', 'Course']]

# Return number of values in each group
df.groupby('Name').count()

Εφαρμογή Λειτουργιών

apply() ωθεί μια συνάρτηση σε κάθε τιμή. Οι κανόνες ευθυγράμμισης αποφασίζουν στη συνέχεια τι συμβαίνει όταν δύο αντικείμενα μοιράζονται μόνο ένα μέρος του δείκτη τους.

# Define function
f = lambda x: x*5

# Apply this function on given Series - For each value
s.apply(f)

# Apply this function on given DataFrame - For each value
df.apply(f)

1. Εσωτερική στοίχιση δεδομένων

# NA values for indices that don't overlap
s2 = pd.Series([8, -1, 4],  index=['A',  'C',  'D'])
s + s2

2. Αριθμητική Operaμε μεθόδους πλήρωσης

# Fill values that don't overlap
s.add(s2, fill_value=0)

3. Φιλτράρισμα, ταξινόμηση και ομαδοποίηση κατά

Αυτές οι συναρτήσεις μπορούν να χρησιμοποιηθούν για φιλτράρισμα, ταξινόμηση και ομαδοποίηση.ping Αντικείμενα Σειρών και DataFrame.

# Filter rows where column is greater than 100
df[df['RollNo']>100]

# Filter rows where 70 < column < 101
df[(df['RollNo'] > 70) & (df['RollNo'] < 101)]

# Sorts values in ascending order
s.sort_values()

# Sorts values in descending order
s.sort_values(ascending=False)

# Sorts values by RollNo in ascending order
df.sort_values('RollNo')

# Sorts values by RollNo in descending order
df.sort_values('RollNo', ascending=False)

Εξαγωγή δεδομένων

Κάθε συγγραφέας παρακάτω αντικατοπτρίζει έναν αναγνώστη από την ενότητα εισαγωγής, επομένως ένα αρχείο μπορεί να κάνει το ταξίδι μετ' επιστροφής χωρίς επιπλέον εργαλεία.

# Export as a CSV file df
df.to_csv(filename)

# Export as a Excel file df
df.to_excel(filename)

# Export as a SQL table df
df.to_sql(table_name, connection_object)

# Export as a JSON file
df.to_json(filename)

# Export as a HTML table
df.to_html(filename)

# Write to the clipboard
df.to_clipboard()

Colab of Cheat Sheet

Κάθε εντολή εδώ μπορεί να εκτελεστεί στο συνοδευτικό σημειωματάριο: Φύλλο απάτης Pandas - Python για Data Science.ipynb.

Συχνές Ερωτήσεις

Η αντιγραφή κατά την εγγραφή είναι πάντα ενεργοποιημένη, οι συμβολοσειρές χρησιμοποιούν έναν αποκλειστικό τύπο dstr και η αλυσιδωτή ανάθεση σε ένα φιλτραρισμένο αντίγραφο προκαλεί το ChainedAssignmentError. Ανάθεση μέσω .loc. Κάθε εντολή εδώ εξακολουθεί να εκτελείται σε πάντα 3.0.

Η pd.merge() συνδέεται σε κοινόχρηστα κλειδιά με τον τρόπο που ένα SQL Η συνάρτηση join κάνει, η συνάρτηση df.join() ευθυγραμμίζεται με το ευρετήριο και η συνάρτηση pd.concat() στοιβάζει τα πλαίσια. Χρησιμοποιήστε τη συγχώνευση για τα κλειδιά και την concat για την προσάρτηση.

Η df.pivot_table() μετατρέπει τις μεγάλες γραμμές σε ένα ευρύ συγκεντρωτικό πλέγμα, η pd.melt() αντιστρέφει αυτό και η stack() ή η unstack() μετακινούν ένα επίπεδο μεταξύ ευρετηρίου και στηλών.

Η συνάρτηση pd.to_datetime() μετατρέπει το κείμενο σε datetime64, το accessor .dt εμφανίζει το έτος, τον μήνα και την ημέρα της εβδομάδας και η resample() συγκεντρώνει τα αποτελέσματα ανά ημέρα, εβδομάδα ή μήνα μόλις αυτή η στήλη γίνει ο δείκτης.

Οι διανυσματικές λειτουργίες εκτελούνται σε μεταγλωττισμένη C σε ολόκληρο τον πίνακα, ενώ η apply() καλεί ένα Python συνάρτηση μία φορά ανά γραμμή. Εναλλαγήping Μια εφαρμογή() ανά γραμμή για μια διανυσματική έκφραση είναι συχνά δέκα φορές ταχύτερη.

Οι βοηθοί τεχνητής νοημοσύνης αντιστοιχίζουν μια απλή περιγραφή του αποτελέσματος σε συγκεκριμένες κλήσεις, προτείνοντας groupby, merge ή pivot_table με τα ορίσματα που χρειάζεται η καθεμία. Επαληθεύστε πρώτα την πρόταση σε ένα μικρό δείγμα.

Ναί. GitHub Copilot μετατρέπει ένα σχόλιο όπως ομαδοποίηση ανά μάθημα και καταμέτρηση σε λειτουργικό κώδικα Pandas μέσα JupyterΑντιμετωπίστε την έξοδο ως προσχέδιο και ελέγξτε τον αριθμό των γραμμών.

Μεταβίβαση του dtype σε read_csv (), μετατρέψτε επαναλαμβανόμενες στήλες κειμένου σε κατηγορία, μειώστε τους αριθμούς με το pd.to_numeric και φορτώστε σε κομμάτια χρησιμοποιώντας την εντολή chunksize. Η εντολή df.info() αναφέρει το πραγματικό αποτύπωμα.

Συνοψίστε αυτήν την ανάρτηση με: