Extraction de données [Résolu/Fermé]

Signaler
Messages postés
70
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
19 juin 2021
-
Messages postés
70
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
19 juin 2021
-
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

Messages postés
70
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
19 juin 2021
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.
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.
Messages postés
70
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
19 juin 2021
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.