Cette fois, je vais résumer les événements que je n'ai pas compris immédiatement lors de l'utilisation de Pandas. Comment faire fonctionner Pandas? Je me perds souvent, alors j'espère que cela sera utile autant que possible.
python
index = ['Produit A', 'Produit B', 'Produit C']
columns = ['printemps', 'été', 'l'automne', 'hiver']
data = np.array([
[0,10,20,30],
[0,0,100,20],
[50,100,20,40],
])
df = pd.DataFrame(data, index=index, columns=columns)
df.head()
printemps | été | l'automne | hiver | |
---|---|---|---|---|
Produit A | 0 | 10 | 20 | 30 |
Produit B | 0 | 0 | 100 | 20 |
Produit C | 50 | 100 | 20 | 40 |
python
for index, row in df.iterrows():
# df.ix[index, 'Saison de vente'] = row.argmax()
df.ix[index, 'Saison de vente'] = row.idxmax() #Vous pouvez faire soit
# df.ix[index, 'Saison lorsque vous ne vendez pas'] = row.argmin()
df.ix[index, 'Saison lorsque vous ne vendez pas'] = row.idxmin() #Vous pouvez faire soit
df.ix[index, 'MAX'] = row.max()
df.ix[index, 'MIN'] = row.min()
df.head()
printemps | été | l'automne | hiver | Saison de vente | Saison lorsque vous ne vendez pas | MAX | MIN | |
---|---|---|---|---|---|---|---|---|
Produit A | 0 | 10 | 20 | 30 | hiver | printemps | 30 | 0 |
Produit B | 0 | 0 | 100 | 20 | l'automne | printemps | 100 | 0 |
Produit C | 50 | 100 | 20 | 40 | été | l'automne | 100 | 20 |
―― En d'autres termes, je veux mettre fin à la saison lorsque chaque produit commence à se vendre pour la première fois. A est l'été, B est l'automne
python
for index, row in df.iterrows():
#index[0]Retirez le premier qui remplit les conditions avec
df.ix[index, 'Saison pour commencer à vendre'] = row[row > 0].index[0]
df.head()
printemps | été | l'automne | hiver | Saison pour commencer à vendre | |
---|---|---|---|---|---|
Produit A | 0 | 10 | 20 | 30 | été |
Produit B | 0 | 0 | 100 | 20 | l'automne |
Produit C | 50 | 100 | 20 | 40 | printemps |
―― En d'autres termes, je souhaite extraire la ligne de produit C qui se vend toute l'année.
python
#not_zero_df = df.query('printemps>0 et l'été>0 et l'automne>0 et hiver> 0')
#not_zero_df = df.query('printemps!=0 et l'été!=0 et l'automne!=0 et hiver!= 0')
#↑ C'est bon, mais ça peut être à l'extérieur comme variable. Au dessous de "@Il suffit d'ajouter
hoge1,hoge2,hoge3,hoge4 = 0,0,0,0
not_zero_df = df.query('printemps> @hoge1 et été> @hoge2 et automne> @hoge3 et hiver> @hoge4')
not_zero_df.head()
printemps | été | l'automne | hiver | |
---|---|---|---|---|
Produit C | 50 | 100 | 20 | 40 |
Au fait, si vous voulez extraire une valeur non nulle en vous concentrant uniquement sur l'été, vous pouvez également écrire comme ceci (extraire des lignes où l'été n'est pas 0)
python
hoge = 0
not_zero_df = df.query('été!= @hoge')
not_zero_df.head()
printemps | été | l'automne | hiver | |
---|---|---|---|---|
Produit A | 0 | 10 | 20 | 30 |
Produit C | 50 | 100 | 20 | 30 |
** Nous continuerons à l'ajouter au besoin **
Recommended Posts