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)
4 Réponses :
Voici un bref aperçu du fonctionnement de l'attribut Pandas loc https: // www .geeksforgeeks.org / python-pandas-dataframe-loc /
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).
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:
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
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
.
avez-vous lu les documents ?