Extraction de données

Résolu
RomainGA Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   -  
RomainGA Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Input:
#nombre de RT
message=data['full_text']
message.head(5)

Output:
0    RT @chaeyeonbot: Congratulations to DIA's Mann...
1 RT @infoCinelandia: These are the Latin Americ...
2 RT @GMA: "I owe this, and so much more, to so ...
3 RT @infoCinelandia: These are the Latin Americ...
4 @KobeBryant and @GlenKeanePrd, winners of the ...
Name: full_text, dtype: object


J'ai pour missions d'afficher le nombre de "RT" et d'afficher le pseudo marqué juste après le "@"
pourriez vous m'indiquez comment faire.

Cordialement.
Romain.

2 réponses

  1. RomainGA Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   6
     
    Ah, j'ai failli oublié de vous prévenir:
    je penses qu'il faut utilisé la fonction count() mais je n'arrive pas a l'employé.
    Merci.
    0
  2. critou
     
    Bonjour.

    D'où viennent ces données ? Avec quel module python ?

    En partant de la chaîne de sortie.

    >>> s = '''0 RT @chaeyeonbot: Congratulations to DIA's Mann...
    ... 1 RT @infoCinelandia: These are the Latin Americ...
    ... 2 RT @GMA: "I owe this, and so much more, to so ...
    ... 3 RT @infoCinelandia: These are the Latin Americ...
    ... 4 @KobeBryant and @GlenKeanePrd, winners of the ...'''
    >>> 
    >>> s.count('RT')
    4
    >>> for ligne in s.splitlines():
    ...     if 'RT' in ligne:
    ...         pseudo = ligne[ligne.find('@')+1:ligne.find(':')]
    ...         print(pseudo)
    ... 
    chaeyeonbot
    infoCinelandia
    GMA
    infoCinelandia
    

    Une simple utilisation de str.find sur le @ et le : avec un slice permet de récupérér le pseudo.

    Mais la solution de regarder s'il y a un RT dans la ligne n'est pas très sûre puisque cette chaîne de caractères peut se trouver dans un message.
    Il faudrait mieux éclater la ligne avec str.split et regarder si le 2nd élément vaut RT.
    Et pour enlever les carcatères @ et : du pseudo, un str.strip suffira.
    0
    1. RomainGA Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   6
       
      Merci pour cette réponse très complète.
      les données proviennent d'un json placé sur mon ordi (cf data)

      import pandas as pd
      pd.set_option('display.height', 10000)
      pd.set_option('display.max_rows', 5000)
      pd.set_option('display.max_columns', 5000)
      pd.set_option('display.width', 10000)

      %matplotlib inline
      import matplotlib.pyplot as plt
      plt.style.use('seaborn-whitegrid')
      import numpy as np

      import warnings
      warnings.filterwarnings("ignore")

      import json
      from datetime import datetime
      data = pd.read_json(r'C:\Users\Romain\Downloads\file_2018-3-23-13.json')
      datas = (pd.DataFrame.from_dict(data, orient='columns'))
      datas


      Cordialement.
      Romain.
      0