J'ai utilisé le module Pandas pour racler des données et j'ai compris comment (), je ne suis toujours pas sûr de savoir comment puis-je comparer 2 colonnes ou plus d'un CSV. Prendre à titre d'exemple le code ci-dessous, je voulais savoir, par ex. Les 3 éditeurs qui ont publié plus d'actions, de tireurs et de jeux de plate-forme, séparément. J'ai écrit le code ci-dessous, mais la sortie montre "Faux" au lieu du nom du genre. Au moins, je crois que les 3 meilleurs éditeurs sont corrects, mais je ne suis pas sûr. Quelqu'un pourrait-il avoir un look?
import pandas as pd
data = pd.read_csv("https://sites.google.com/site/dr2fundamentospython/arquivos/Video_Games_Sales_as_at_22_Dec_2016.csv")
a = ((data['Genre'] == 'Action') & (data['Genre'] == 'Shooter') & (data['Genre'] == 'Platform')).groupby((data['Publisher']) & (data['Global_Sales'])).value_counts().head(3)
print(a)
3 Réponses :
Ce sont beaucoup de questions à la fois:
a = données ["éditeur"]. Groupby ((données ["Genre"] == "action")). Valeur_counts (). Tête (3) Imprimer (a) Code> P> blockQuote> li> ol>dans un groupe, vous ne spécifiez pas de genre concret comme «action». C'est ce que la requête est pour. Le point de groupby est d'effectuer le calcul suivant pour tous les EM> Genre p>
xxx pré> Notez que la sélection de l'éditeur est après le regroupement, donc des boucles de pandas internes sur toutes les valeurs du genre et fait une valeur_compte de l'éditeur p>
Je devrais trouver les 3 meilleurs éditeurs qui ont vendu les jeux les plus accidents, le tireur et la plate-forme p> blockQuote> li> ol>
Filtrez simplement pour les catégories que vous souhaitez comme ceci P>
xxx pré> puis vous voulez que les 3 plus grands éditeurs par genre em> et donc Vous utilisez un autre groupeby p>
xxx pré> la fonction
tête code> repose implicitement sur les valeurs triés. Sinon, vous pouvez utilisernlargest code> p>xxx pré> Le résultat est le même, mais vous auriez besoin de nettoyer l'index avec
droplevel code> Comme cela apparaissait deux fois p>
Et si je veux inclure une période, par exemple, comparez toutes ces colonnes depuis 10 ans? P> blockQuote> li> ol>
Vous auriez évidemment besoin de données pour le calendrier. Si vous voulez juste des jeux publiés au cours des 10 dernières années, filtrez les données d'origine pour les jeux plus récents que 10 ans. Si vous souhaitez résoudre lesquels les éditeurs ont publié le plus chaque année, vous créeriez une colonne avec l'année de publication et de groupe. Avec le genre et l'éditeur, vous avez déjà vu que vous pouvez regrouper par une liste de fonctionnalités. P> p>
Pour les 3 premiers, vous pouvez le faire:
Publisher Global_Sales 195 Nintendo 623.24 11 Activision 480.94 84 Electronic Arts 287.13
Pour le premier doute, vous pouvez coder:
import pandas as pd
data = pd.read_csv("https://sites.google.com/site/dr2fundamentospython/arquivos/Video_Games_Sales_as_at_22_Dec_2016.csv")
# group data by Publisher and Genre using .sum() for getting total sales
grouped_2 = data.groupby((data['Publisher'], data['Genre'])).sum()
# Look for a specific Publisher x Genre
specific = grouped_2.loc['Nintendo', 'Sports']
print(specific)
# For making the analysis for last 10 years
Recent_data = data[data['Year_of_Release']>2010]
# Now, you can replace "data" for "Recent_data" and make the same analysis for the last 10 years.