1
votes

Je ne comprends pas ce qu'est un morceau de code en suivant un cours en python

import pandas as pd
die = pd.DataFrame([1, 2, 3, 4, 5, 6])
sum_of_dice = die.sample(2, replace=True).sum().loc[0]
print('Sum of dice is', sum_of_dice)

1 commentaires

avez-vous lu les documents ?


4 Réponses :


0
votes

Voici un bref aperçu du fonctionnement de l'attribut Pandas loc https: // www .geeksforgeeks.org / python-pandas-dataframe-loc /


0 commentaires

0
votes

Loc semble être une sorte de liste. Cela signifie qu'il stocke (ou peut stocker) plusieurs valeurs. Le code veut uniquement accéder à la valeur à l'index 0 (qui est l'index de départ).


0 commentaires

0
votes

L'indexeur Pandas loc peut être utilisé avec DataFrames pour deux cas d'utilisation différents:

a) Sélection des lignes par libellé / index

b) Sélection de lignes avec une recherche booléenne / conditionnelle

Pour en savoir plus, veuillez passer par:

https://www.shanelynn.ie/select-pandas-dataframe-rows-and-columns-using-iloc-loc-and-ix/#loc-selection


0 commentaires

1
votes

Comme die est défini comme un pandas.DataFrame , il est intrinsèquement bidimensionnel.

import pandas as pd
die = pd.Series([1, 2, 3, 4, 5, 6])
sum_of_dice = die.sample(2, replace=True).sum()
print('Sum of dice is', sum_of_dice)

pandas.DataFrame.sample renverra un autre pandas.DataFrame qui est en 2 dimensions

roll.sum().loc[0]

7

Quand nous pandas.DataFrame.sum , par défaut, nous additionnons chaque colonne et renvoyons un pandas.Series où l'index de cette pandas.Series est les colonnes objet du pandas.DataFrame que nous avons résumé.

roll.sum()

0    7
dtype: int64

Ceci est une pandas.Series avec une valeur. Si nous voulons juste la première valeur, nous pouvons utiliser loc[0edral

roll = die.sample(2, replace=True)
roll

   0
1  2
4  5

Ce que je ferais

Utilisez une pandas.Series pour définir die

die = pd.DataFrame([1, 2, 3, 4, 5, 6])
die

   0
0  1
1  2
2  3
3  4
4  5
5  6

Dans ce cas, die est un pandas.Series unidimensionnel et donc, est donc le die.sample (2, replace = True) . Par conséquent, et heureusement, la somme d'une pandas.Series est un scalaire ... et ce que nous voulons. Pas besoin d'utiliser loc . De plus, créer un pandas.DataFrame demande un peu plus d'efforts que créer un pandas.Series . De plus, appeler loc a également un léger surcoût. Tous ensemble, nous enregistrons la création de 2 pandas.DataFrames (un de pd.Series au lieu de pd.DataFrame et deux de die.sample qui crée un autre pandas.Series au lieu d'un autre pandas.DataFrame ) et nous nous épargnons un appel loc .


0 commentaires