Domanda Python \\ Generare una reportistica di 300+ file CSV

valo83

Utente Iron
26 Novembre 2021
30
8
1
14
Ciao a tutti,

allora mi piacerebbe capire come costruire un dataframe di reportistica che analizzi molti file csv.
I file son sempre dati estratti dai social. Quindi ad esempio Colonna P del file CSV testo del tweet, Colonna O numero di like, Colonna R Numero di Retweet.
Esempio un dataframe report dove:
Colonna A: nome file del singolo CSV
Colonna B: Numero di Righe del singolo CSV
Colonna C: Testo del Tweet con più like del singolo CSV
Colonna D: Numero di like del tweet con più like del singolo CSV.
Colonna E..... Utente più attivo
Colonna F.... Utente più taggato
Colonna H..... Parola più usata nella colonna P del singolo CSV
Colonna I.....


Qualcuno mi può aiutare?
Vorrei fare tutto questo senza concatenerali e senza usare un DB.

Grazie mille
 
Quindi tu hai diversi csv e vuoi analizzarli tutti in contemporanea senza un DB o un file csv unico giusto?

Puoi creare una funzione che legga i diversi file e che li concateni in un dataset unico senza poi andarlo a salvare in un csv. Ti posso chiedere perché non vuoi un file unico? Quello che andrai a fare è sicuramente poco efficiente e time consuming.
 
Ultima modifica:
Quindi tu hai diversi csv e vuoi analizzarli tutti in contemporanea senza un DB o un file csv unico giusto?

Puoi creare una funzione che legga i diversi file e che li concateni in un dataset unico senza poi andarlo a salvare in un csv. Ti posso chiedere perché non vuoi un file unico? Quello che andrai a fare è sicuramente poco efficiente e time consuming.
Va bene anche un file unico ma non mi serve concatenati.
Ma forse sono troppi dati senza DB.
Sarebbe uno script da fare girare una volta solta, di fatto un report-sintesi.
Messaggio unito automaticamente:

infatti mi dà errore :

Codice:
ParserError: Error tokenizing data. C error: Buffer overflow caught - possible malformed input file.
 
infatti mi dà errore :
Che linea ti da questo errore? Hai provato a googlare il tuo errore per provare qualche soluzione già proposta? Dai uno sguardo a Questa discussione su StackOverflow

Va bene anche un file unico ma non mi serve concatenati.
Per salvarli in un file unico devi per forza concatenare tutti i file per poi salvarli in un file csv unico. Lavoreresti in maniera molto più comoda
 
Ultima modifica:
Ma scusa, con questo codice trovo esclusivamente quando la colonna "Clusters" ha la specifica e singola catergoria "Sostenibilità".
df_testi_p_u_c_sostenibili = pd.DataFrame(frame[frame["Clusters_Str"]=="Sostenibilità"])

Ma ci sono delle righe in cui c'è per esempio Sostenibilità, Politica, .... (ed altre categorie).

Esiste un codice tipo

Codice:
df_testi_p_u_c_sostenibili = pd.DataFrame(frame[frame["Clusters_Str"].str.cointans("Sostenibilità")])

???

in altre parole: fammi un sub-frame con le righe dove trovi la parola "Sostenibilità" nella colonna "Cluster"

Aprendo il file in excel trovo 250 righe (perchè ci sono i mix "sostenibilità" + altre ... ) ma con
df_testi_p_u_c_sostenibili = pd.DataFrame(frame[frame["Clusters_Str"]=="Sostenibilità"])
solo 11.

Grazie

Legato con : https://www.inforge.net/forum/threa...clusterizzazione-manuale.608161/#post-5203416
 
Ma scusa, con questo codice trovo esclusivamente quando la colonna "Clusters" ha la specifica e singola catergoria "Sostenibilità".
df_testi_p_u_c_sostenibili = pd.DataFrame(frame[frame["Clusters_Str"]=="Sostenibilità"])

Ma ci sono delle righe in cui c'è per esempio Sostenibilità, Politica, .... (ed altre categorie).

Esiste un codice tipo

Codice:
df_testi_p_u_c_sostenibili = pd.DataFrame(frame[frame["Clusters_Str"].str.cointans("Sostenibilità")])
???

in altre parole: fammi un sub-frame con le righe dove trovi la parola "Sostenibilità" nella colonna "Cluster"

Aprendo il file in excel trovo 250 righe (perchè ci sono i mix "sostenibilità" + altre ... ) ma con
df_testi_p_u_c_sostenibili = pd.DataFrame(frame[frame["Clusters_Str"]=="Sostenibilità"])
solo 11.

Grazie

Legato con : https://www.inforge.net/forum/threa...clusterizzazione-manuale.608161/#post-5203416
Scusa non ho capito il tuo problema... Potresti formulare il messaggio in maniera diversa?
Cosa vuoi ottenere? E cosa invece ottieni?
 
1643313129165.png


Allora con il codice
Codice:
df_testi_p_u_c_sostenibili = pd.DataFrame(frame[frame["Clusters_Str"]=="Sostenibilità"])
ottengo solo quelli che ho evidenziato in giallo.
In realtà io vorrei quelli che hanno o solo sostenibilità o tra i vari il cluster sostenibilità.
Ci sta che i tweet parlino di vari "clusters" e non unicamente di uno ma con
Codice:
df_testi_p_u_c_sostenibili = pd.DataFrame(frame[frame["Clusters_Str"]=="Sostenibilità"])
ottengo solo quelli che hanno nella colonna Clusters unicamente "Sostenibilità".

Spero sia chiaro

:)
 
Se devi cercare un elemento in una lista in pandas non devi usare "==" ma piuttosto ".isin". Ecco il codice che dovrebbe fare a caso tuo:
Python:
df_testi_p_u_c_sostenibili = frame[frame["Clusters_Str"].isin("Sostenibilità")]
 
  • Mi piace
Reazioni: valo83