Course
Cet article est une contribution précieuse de notre communauté et a été édité par DataCamp dans un souci de clarté et d'exactitude.
Vous souhaitez partager votre expertise ? N'hésitez pas à nous contacter ! N'hésitez pas à soumettre vos articles ou vos idées par le biais de notre formulaire de contribution communautaire.
Comme il s'agit de l'une des compétences les plus exigeantes pour un poste axé sur les données, de nombreux professionnels ou passionnés de données recherchent les questions d'entretien les plus fréquemment posées aux pandas afin de décrocher un emploi décent dans l'industrie des données en plein essor.
Que vous soyez à la recherche d'un premier emploi ou que vous souhaitiez évoluer dans votre fonction, nous avons ce qu'il vous faut. Dans cet article, nous avons compilé les questions d'entretien les plus fréquemment posées à Python pandas et leurs réponses. Certaines des questions sont tirées de ma propre expérience d'entretien chez Target dans un rôle de data scientist.
Lisez donc la suite pour découvrir des questions d'entretien avec des pandas de tous niveaux.
Si vous manquez de temps et que vous avez besoin d'un récapitulatif rapide sur les pandas, consultez notre aide-mémoire sur les pandas.
Questions d'entretien de base sur pandas
Examinons maintenant quelques questions d'entretien de base sur les pandas. Les enquêteurs bienveillants peuvent commencer par ces questions simples pour vous rassurer au début, tandis que d'autres peuvent les poser pour évaluer votre connaissance de base de la bibliothèque.
1. Qu'est-ce que pandas en Python ?
Pandas est une bibliothèque Python open-source qui propose des méthodes puissantes et intégrées pour nettoyer, analyser et manipuler efficacement les ensembles de données. Développé par Wes McKinney en 2008, ce puissant paquetage peut facilement s'intégrer à d'autres modules de science des données en Python.
Pandas est construit au-dessus de la bibliothèque NumPy, c'est-à-dire que ses structures de données Series et DataFrame sont les versions améliorées des tableaux NumPy.
2. Comment accéder aux 6 premières lignes et aux 7 dernières lignes d'un DataFrame pandas ?
La méthode head()
de pandas est utilisée pour accéder aux premières lignes d'un DataFrame, et la méthode tail() est utilisée pour accéder aux dernières lignes.
Pour accéder aux 6 premières lignes : dataframe_name.head(6)
Pour accéder aux 7 dernières lignes : dataframe_name.tail(7)
3. Pourquoi DataFrame.shape n'a-t-il pas de parenthèses ?
Dans pandas, shape
est un attribut et non une méthode. Vous devez donc y accéder sans parenthèses.
DataFrame.shape
produit un tuple contenant le nombre de lignes et de colonnes d'un DataFrame.
4. Quelle est la différence entre Series et DataFrame ?
DataFrame : Le pandas DataFrame se présente sous la forme d'un tableau composé de plusieurs lignes et colonnes, chaque colonne pouvant contenir différents types de données.
Série : La série est un tableau unidimensionnel étiqueté qui peut stocker n'importe quel type de données, mais toutes ses valeurs doivent être du même type. La structure des données de la série est plus proche d'une colonne unique d'un DataFrame.
La structure de données Series consomme moins de mémoire qu'un DataFrame. Ainsi, certaines tâches de manipulation de données y sont plus rapides.
Cependant, DataFrame peut stocker des ensembles de données complexes et de grande taille, tandis que Series ne peut traiter que des données homogènes. Ainsi, l'ensemble des opérations que vous pouvez effectuer sur un DataFrame est nettement plus important que sur une structure de données Series.
5. Qu'est-ce qu'un index dans pandas ?
L'index est une série d'étiquettes permettant d'identifier de manière unique chaque ligne d'un DataFrame. L'index peut être de n'importe quel type de données, comme un entier, une chaîne, un hachage, etc,
df.index
imprime les index des lignes actuelles du DataFrame df.
Questions d'entretien intermédiaires sur pandas
Ces questions seront un peu plus difficiles et vous les rencontrerez plus probablement dans des rôles nécessitant une expérience préalable de l'utilisation des pandas.
6. Qu'est-ce que l'indexation multiple dans pandas ?
L'index dans pandas spécifie de manière unique chaque ligne d'un DataFrame. Nous choisissons généralement la colonne qui peut identifier de manière unique chaque ligne d'un DataFrame et la définissons comme index. Mais que se passe-t-il si vous ne disposez pas d'une seule colonne capable de faire cela ?
Par exemple, vous avez les colonnes "nom", "âge", "adresse" et "notes" dans un DataFrame. L'une ou l'autre des colonnes ci-dessus peut ne pas avoir de valeur unique pour toutes les lignes différentes et ne pas convenir en tant qu'index.
Toutefois, les colonnes "nom" et "adresse" peuvent, ensemble, identifier de manière unique chaque ligne du DataFrame. Vous pouvez donc définir les deux colonnes comme index. Votre DataFrame possède désormais un index multi-index ou hiérarchique.
7. Expliquez la réindexation pandas
La réindexation dans pandas nous permet de créer un nouvel objet DataFrame à partir du DataFrame existant avec les index des lignes et les étiquettes des colonnes mis à jour.
Vous pouvez fournir un ensemble de nouveaux index à la fonction DataFrame.reindex() qui créera un nouvel objet DataFrame avec les index donnés et prendra des valeurs dans le DataFrame actuel.
Si les valeurs de ces nouveaux index n'étaient pas présentes dans le DataFrame original, la fonction remplit ces positions avec les valeurs nulles par défaut. Cependant, nous pouvons remplacer la valeur par défaut NaN par la valeur de notre choix.
Voici un exemple de code :
Créez un DataFrame df avec des index :
import pandas as pd
data = [['John', 50, 'Austin', 70],
['Cataline', 45 , 'San Francisco', 80],
['Matt', 30, 'Boston' , 95]]
columns = ['Name', 'Age', 'City', 'Marks']
#row indexes
idx = ['x', 'y', 'z']
df = pd.DataFrame(data, columns=columns, index=idx)
print(df)
Réindexez avec un nouvel ensemble d'index :
new_idx = ['a', 'y', 'z']
new_df = df.reindex(new_idx)
print(new_df)
Le site new_df
reprend les valeurs du site df
pour les indices communs ("y" et "z"), et le nouvel indice "a" est rempli avec la valeur par défaut NaN.
8. Quelle est la différence entre loc et iloc ?
Les méthodes loc et iloc de pandas sont utilisées pour sélectionner des sous-ensembles d'un DataFrame. En pratique, ils sont largement utilisés pour filtrer les DataFrame sur la base de conditions.
Nous devons utiliser la méthode loc pour sélectionner les données à l'aide des étiquettes réelles des lignes et des colonnes, tandis que la méthode iloc est utilisée pour extraire les données sur la base des indices entiers des lignes et des colonnes.
9. Montrez deux façons différentes de créer un DataFrame pandas
Utilisation du dictionnaire Python :
import pandas as pd
data = {'Name': ['John', 'Cataline', 'Matt'],
'Age': [50, 45, 30],
'City': ['Austin', 'San Francisco', 'Boston'],
'Marks' : [70, 80, 95]}
df = pd.DataFrame(data)
Utilisation des listes Python :
import pandas as pd
data = [['John', 25, 'Austin',70],
['Cataline', 30, 'San Francisco',80],
['Matt', 35, 'Boston',90]]
columns = ['Name', 'Age', 'City', 'Marks']
df = pd.DataFrame(data, columns=columns)
10. Comment obtenir le nombre de toutes les valeurs uniques d'une colonne catégorielle dans un DataFrame ?
La fonction Series.value_counts()
renvoie le nombre de chaque valeur unique d'une série ou d'une colonne.
Exemple :
Nous avons créé un DataFrame df qui contient une colonne catégorielle nommée 'Sex', et nous avons exécuté la fonction value_counts()
pour voir le nombre de chaque valeur unique dans cette colonne.
import pandas as pd
data = [['John', 50, 'Male', 'Austin', 70],
['Cataline', 45 ,'Female', 'San Francisco', 80],
['Matt', 30 ,'Male','Boston', 95]]
# Column labels of the DataFrame
columns = ['Name','Age','Sex', 'City', 'Marks']
# Create a DataFrame df
df = pd.DataFrame(data, columns=columns)
df['Sex'].value_counts()
Questions d'entretien sur pandas pour les praticiens expérimentés
Les personnes qui ont déjà une solide expérience des pandas et qui postulent à des postes plus importants peuvent être confrontées à certaines de ces questions :
11. Comment optimiser les performances lorsque vous travaillez avec de grands ensembles de données dans pandas ?
Chargez moins de données : Lorsque vous lisez des données à l'aide de pd.read_csv()
, choisissez uniquement les colonnes dont vous avez besoin à l'aide du paramètre "usecols" afin d'éviter de charger des données inutiles. De plus, en spécifiant le paramètre "chunksize", vous divisez les données en plusieurs morceaux et les traitez de manière séquentielle.
Évitez les boucles : Les boucles et les itérations sont coûteuses, en particulier lorsque vous travaillez avec de grands ensembles de données. Optez plutôt pour des opérations vectorisées, car elles sont appliquées sur une colonne entière en une seule fois, ce qui les rend plus rapides que les itérations par ligne.
Utilisez l'agrégation de données : Essayez d'agréger des données et d'effectuer des opérations statistiques, car les opérations sur les données agrégées sont plus efficaces que sur l'ensemble des données.
Utilisez les bons types de données : Les types de données par défaut de pandas ne sont pas efficaces en termes de mémoire. Par exemple, les valeurs entières prennent le type de données par défaut int64, mais si vos valeurs peuvent tenir dans int32, l'ajustement du type de données à int32 peut optimiser l'utilisation de la mémoire.
Traitement parallèle : Dask est une API de type pandas qui permet de travailler avec de grands ensembles de données. Il utilise plusieurs processus de votre système pour exécuter en parallèle différentes tâches de données.
12. Quelle est la différence entre les méthodes Join et Merge dans pandas ?
Rejoignez-nous : Joint deux DataFrames sur la base de leur index. Cependant, un argument facultatif "on" permet de spécifier explicitement si vous souhaitez effectuer une jointure basée sur des colonnes. Par défaut, cette fonction effectue une jointure à gauche.
Syntaxe : df1.join(df2)
Fusionner : La fonction de fusion est plus polyvalente et vous permet de spécifier les colonnes sur lesquelles vous souhaitez joindre les DataFrames. Il applique la jointure interne par défaut, mais peut être personnalisé pour utiliser différents types de jointure comme la jointure gauche, la jointure droite, la jointure externe, la jointure interne et la jointure croisée.
Syntaxe : pd.merge(df1, df2, on=”column_names”)
13. Qu'est-ce que Timedelta ?
Le delta temporel représente la durée, c'est-à-dire la différence entre deux dates ou heures, mesurée en unités telles que les jours, les heures, les minutes et les secondes.
14. Quelle est la différence entre les méthodes append et concat ?
Nous pouvons utiliser la méthode concat
pour combiner des DataFrames le long des lignes ou des colonnes. De même, append est également utilisé pour combiner des DataFrames, mais uniquement le long des lignes.
Avec la fonction concat, vous avez la possibilité de modifier le DataFrame original en utilisant le paramètre "inplace", alors que la fonction append ne peut pas modifier le DataFrame actuel, mais en crée un nouveau avec les données combinées.
Questions d'entretien sur le codage de pandas
Les compétences pratiques sont tout aussi importantes que les connaissances théoriques lorsqu'il s'agit de réussir un entretien technique. Voici donc le codage des questions d'entretien avec les pandas que vous devez connaître avant d'affronter votre interlocuteur.
15. Comment lire des fichiers Excel au format CSV en utilisant pandas ?
Tout d'abord, nous devons utiliser la fonction read_excel() pour introduire les données Excel dans une variable. Il suffit ensuite d'appliquer la fonction to_csv() pour obtenir une conversion transparente.
Voici un exemple de code :
import pandas as pd
#input your excel file path into the read_excel() function.
excel_data = pd.read_excel("/content/sample_data/california_housing_test.xlsx")
excel_data.to_csv("CSV_data.csv", index = None, header=True)
16. Comment trier un DataFrame en fonction des colonnes ?
Nous disposons de la méthode sort_values() pour trier le DataFrame sur la base d'une seule colonne ou de plusieurs colonnes.
Syntaxe : df.sort_values(by=[“column_names”])
Exemple de code :
import pandas as pd
data = [['John', 50, 'Male', 'Austin', 70],
['Cataline', 45 ,'Female', 'San Francisco', 80],
['Matt', 30 ,'Male', 'Boston', 95],
['Oliver',35,'Male', 'New york', 65]]
# Column labels of the DataFrame
columns = ['Name','Age','Sex', 'City', 'Marks']
# Create a DataFrame df
df = pd.DataFrame(data, columns=columns)
# Sort values based on ‘Age’ column
df.sort_values(by=['Age'])
df.head()`
17. Montrez deux façons différentes de filtrer les données
Pour créer un DataFrame :
import pandas as pd
data = {'Name': ['John', 'Cataline', 'Matt'],
'Age': [50, 45, 30],
'City': ['Austin', 'San Francisco', 'Boston'],
'Marks' : [70, 80, 95]}
# Create a DataFrame df
df = pd.DataFrame(data)
Méthode 1 : Sur la base des conditions
new_df = df[(df.Name == "John") | (df.Marks > 90)]
print (new_df)
Méthode 2 : Utilisation de la fonction d'interrogation
df.query('Name == "John" or Marks > 90')
print (new_df)
18. Comment regrouper des données et appliquer une fonction d'agrégation telle que la moyenne ou la somme ?
La fonction groupby
vous permet d'agréger des données sur la base de certaines colonnes et d'effectuer des opérations sur les données groupées. Dans le code suivant, les données sont regroupées sur la colonne "Nom" et la moyenne des "Notes" de chaque groupe est calculée.
import pandas as pd
# Create a DataFrame
data = {
'Name': ['John', 'Matt', 'John', 'Matt', 'Matt', 'Matt'],
'Marks': [10, 20, 30, 15, 25, 18]
}
# Create a DataFrame df
df = pd.DataFrame(data)
# mean marks of John and Matt
print(df.groupby('Name').mean())
19. Comment créer une nouvelle colonne dérivée de colonnes existantes ?
Nous pouvons utiliser la méthode apply()
pour créer une nouvelle colonne en effectuant certaines opérations sur les colonnes existantes.
Le code suivant ajoute une nouvelle colonne nommée "total" au DataFrame. Cette nouvelle colonne contient la somme des valeurs des deux autres colonnes.
Exemple de code :
import pandas as pd
# Create a DataFrame
data = {
'Name': ['John', 'Matt', 'John', 'Cateline'],
'math_Marks': [18, 20, 19, 15],
'science_Marks': [10, 20, 15, 12]
}
# Create a DataFrame df
df = pd.DataFrame(data)
df['total'] = df.apply(lambda row : row["math_Marks"] + row["science_Marks"], axis=1)
print(df)
Questions d'entretien pandas pour les Data Scientists
Maintenant que nous avons couvert toutes les questions d'entretien générales et de codage pour pandas, regardons les questions d'entretien pour la science des données de pandas.
20. Comment gérez-vous les valeurs nulles ou manquantes dans pandas ?
Vous pouvez utiliser l'une des trois méthodes suivantes pour gérer les valeurs manquantes dans pandas :
dropna()
- la fonction supprime les lignes ou les colonnes manquantes du DataFrame.
fillna()
- Cette fonction permet de remplir les zéros avec une valeur spécifique.
interpolate()
- cette méthode remplit les valeurs manquantes avec des valeurs d'interpolation calculées. La technique d'interpolation peut être linéaire, polynomiale, spline, temporelle, etc,
21. Différence entre les méthodes fillna() et interpolate()
fillna() -
fillna()
remplit les valeurs manquantes avec la constante donnée. De plus, vous pouvez donner des entrées de remplissage en avant ou en arrière à son paramètre "method".
interpolate() -
Par défaut, cette fonction remplit les valeurs manquantes ou NaN avec les valeurs interpolées linéairement. Cependant, vous pouvez personnaliser la technique d'interpolation (polynomiale, temporelle, index, spline, etc.) à l'aide du paramètre "method".
La méthode d'interpolation est particulièrement adaptée aux données de séries temporelles, tandis que la méthode de fillna est une approche plus générique.
22. Qu'est-ce que le rééchantillonnage ?
Le rééchantillonnage est utilisé pour modifier la fréquence à laquelle les données de la série temporelle sont rapportées. Imaginez que vous ayez des données de séries temporelles mensuelles et que vous souhaitiez les convertir en données hebdomadaires ou annuelles, c'est là que le rééchantillonnage est utilisé.
La conversion de données mensuelles en données hebdomadaires ou quotidiennes n'est rien d'autre qu'un suréchantillonnage. Des techniques d'interpolation sont utilisées pour augmenter les fréquences.
En revanche, la conversion de données mensuelles en données annuelles est appelée "downsampling", c'est-à-dire que des techniques d'agrégation des données sont appliquées.
23. Comment effectuer l'encodage à une touche à l'aide de pandas ?
Nous effectuons un codage à chaud pour convertir les valeurs catégorielles en valeurs numériques afin de pouvoir alimenter l'algorithme d'apprentissage automatique.
import pandas as pd
data = {'Name': ['John', 'Cateline', 'Matt', 'Oliver'],
'ID': [1, 22, 23, 36]}
df = pd.DataFrame(data)
#one hot encoding
new_df = pd.get_dummies(df.Name)
new_df.head()
24. Comment créer un graphique linéaire dans pandas ?
Pour tracer un graphique linéaire, nous disposons d'une fonction plot dans pandas.
import pandas as pd
data = {'units': [1, 2, 3, 4, 5],
'price': [7, 12, 8, 13, 16]}
# Create a DataFrame df
df = pd.DataFrame(data)
df.plot(x='units', y='price')
25. Quelle est la méthode pandas pour obtenir le résumé statistique de toutes les colonnes d'un DataFrame ?
df.describe()
Cette méthode renvoie des statistiques telles que la moyenne, les valeurs de percentile, min, max, etc. de chaque colonne du DataFrame.
26. Qu'entend-on par "rouler" ?
La moyenne glissante est également appelée moyenne mobile car l'idée est de calculer la moyenne des points de données pour une fenêtre spécifiée et de faire glisser cette fenêtre sur l'ensemble des données. Cela permet d'atténuer les fluctuations et de mettre en évidence les tendances à long terme des données de la série chronologique.
Syntaxe : df['column_name'].rolling(window=n).mean()
Préparation de l'entretien
Outre les pandas, un poste axé sur les données exige de nombreuses autres compétences. Voici la liste de contrôle pour réussir l'ensemble du processus d'entretien :
Comprendre les exigences du poste
Révisez la description du poste et les responsabilités et assurez-vous que vos compétences et votre curriculum vitae sont en adéquation avec celles-ci. En outre, le fait de connaître l'entreprise et l'impact de votre rôle sur elle est un atout.
Code en Python
L'interviewer vérifie d'abord vos compétences en Python avant de vous interroger sur sa bibliothèque (pandas). Il faut donc vous équiper de solides compétences en Python.
Pour les postes d'analystes, seul le langage Python fait l'affaire. Mais si vous postulez à des postes de data scientist ou d'ingénieur ML, il est important de résoudre des défis de codage Python.
Projets de données
Assurez-vous d'avoir résolu des problèmes de données dans le monde réel dans votre CV. Pour les personnes expérimentées, vous pouvez parler de vos projets antérieurs. Si vous êtes nouveau dans le domaine, essayez de terminer quelques projets de Kaggle.
Concepts généraux
Pour les analystes, les questions peuvent porter sur Excel, les tableaux de bord de visualisation des données, les statistiques et les probabilités. En outre, l'examinateur peut approfondir les sujets relatifs à l'apprentissage automatique et à l'apprentissage profond si vous postulez à des postes de data scientist ou d'ingénieur ML.
Préparez-vous en utilisant les questions d'entretien les plus fréquentes
Il y a de fortes chances que l'on vous pose au moins quelques questions parmi les questions d'entretien les plus fréquentes. Préparez-vous donc à l'aide des antisèches et des questions d'entretien simulées.
Conception du système ML
Attendez-vous à des questions sur la conception des systèmes si vous postulez à des postes hautement techniques ou expérimentés. Révisez les questions de conception courantes et entraînez-vous à résoudre des problèmes de conception de systèmes ML de bout en bout.
Conclusion
Pour décrocher un emploi dans le secteur des données, il faut avoir de solides compétences en Python pandas. La liste ci-dessus de questions d'entretien théoriques et pratiques devrait vous aider à réussir la partie "pandas" de votre entretien. De plus, les conseils donnés à la fin de l'entretien vous permettront de le mener à bien.
Vous pouvez utiliser les ressources suivantes pour vous aider à préparer votre entretien avec les pandas :
- Manipulation de données avec pandas: Un cours pour débutants couvrant les bases des pandas, la manipulation des données et les techniques de visualisation en utilisant des ensembles de données du monde réel.
- Préparation des données avec pandas: Ce tutoriel offre des compétences pratiques dans le traitement des données manquantes avec pandas, en enseignant des fonctions telles que isnull(), dropna(), et fillna().
- S'entraîner aux questions d'entretien sur le codage en Python: Idéal pour préparer les entretiens de codage, ce cours couvre les structures de données Python, la manipulation de chaînes de caractères et d'autres domaines clés pour les entretiens de science des données.
- Préparation à l'entretien en science des données: Fournit des conseils de préparation complets pour différents formats d'entretien et couvre les compétences techniques en Python, R, SQL, et plus encore.
Srujana est rédactrice technique indépendante et titulaire d'un diplôme de quatre ans en informatique. Écrire sur divers sujets, notamment la science des données, l'informatique en nuage, le développement, la programmation, la sécurité et bien d'autres encore, est pour elle une évidence. Elle aime la littérature classique et la découverte de nouvelles destinations.
Commencez dès aujourd'hui votre voyage avec les pandas !
Course
Joindre des données avec pandas
Course