0
votes

(Python) Comment puis-je comparer 2 colonnes ou plus avec des pandas?

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)


0 commentaires

3 Réponses :


1
votes

Ce sont beaucoup de questions à la fois:

  1. a = données ["éditeur"]. Groupby ((données ["Genre"] == "action")). Valeur_counts (). Tête (3) Imprimer (a)

    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 Genre xxx

    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

    1. Je devrais trouver les 3 meilleurs éditeurs qui ont vendu les jeux les plus accidents, le tireur et la plate-forme

      Filtrez simplement pour les catégories que vous souhaitez comme ceci xxx

      puis vous voulez que les 3 plus grands éditeurs par genre et donc Vous utilisez un autre groupeby xxx

      la fonction tête repose implicitement sur les valeurs triés. Sinon, vous pouvez utiliser nlargest xxx

      Le résultat est le même, mais vous auriez besoin de nettoyer l'index avec droplevel Comme cela apparaissait deux fois

      1. Et si je veux inclure une période, par exemple, comparez toutes ces colonnes depuis 10 ans?

        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.


0 commentaires

1
votes

Pour les 3 premiers, vous pouvez le faire:

           Publisher  Global_Sales
195         Nintendo        623.24
11        Activision        480.94
84   Electronic Arts        287.13


0 commentaires

0
votes

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.


0 commentaires