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 ?