Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - Sendo

Pagine: [1]
1
Progetti e script / Re:Unione CSV
« il: Marzo 25, 2020, 12:47 »
a niente infatti in quello originale l'avevo commentato, mi sono sbagliato

Salve @Sendo, ben venuto, dato che non utilizzi pandas posso osare ad intervenire :)

Non ho compreso se il Tuo post è motivato da un problema o altro, se si, quale è il problema?, come sono strutturati i csv?, un esempio per ragionarci su è disponibile?

Per altro, nella libreria base dovrebbe essere disponibile il modulo csv
Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
>>> import csv
>>> help('csv')
Help on module csv:

NAME
    csv - CSV parsing and writing.

MODULE REFERENCE
    https://docs.python.org/3.6/library/csv
    ...

magari potrebbe esserTi utile.
ciao @nuzzopippo grazie della risposta, cerco di spiegarmi meglio possibile. Sotto ti scrivo un esempio di due file.csv, se provi ad avviare lo script (inserendo i path giusti ovviamente e creando due file come prova), prende tutti i file.csv presenti in una cartella e li unisce in un unico file chiamato "Unione_files.csv", se ci sono nomi delle colonne uguali semplicemente aggiunge delle righe sotto (praticamente un append), questa cosa sono riuscoto a farla, il problema è che non voglio visualizzare tutte le colonne, devo avere la possibilità di inserire in input SOLO i nomi delle colonne che voglio visualizzare splittate per "*", prendo come esempio i file che ti ho scritto sotto, se io scrivo "Inclinazione_01", mi crea il file unito SOLO con la colonna che contiene "Inclinazione_01", quando ho finito di inserire i nomi delle colonne che voglio vedere scrivo "stop" e mi unisce i file.

|file1.csv|
-----------------------------------------------------------------
| Timestamp | Stanza_01*Inclinazione_01 | Stanza_02*Inclinazione_01
| 1         | 0.2                       | 0.432
| 2         | 0.4                       | 0.548

|file2.csv|
-----------------------------------------------------------------
| Timestamp | Stanza_01*Inclinazione_01 | Stanza_03*Inclinazione_02
| 3         | 0.3                       | 0.543
| 4         | 0.6                       | 0.972

Questo è quello che genero io:

|Unione_files.csv|
---------------------------------------------------------------------------------------------
| Timestamp | Stanza_01*Inclinazione_01 | Stanza_02*Inclinazione_01 |  Stanza_03*Inclinazione_02
| 1         | 0.2                       | 0.432                     |//
| 2         | 0.4                       | 0.548                     |//
| 3         | 0.3                       |//                         | 0.543
| 4         | 0.6                       |//                         | 0.972


Quello che vorrei dopo che ho inserito in input i nomi delle colonne, per esempio "Inclinazione_01":

|Unione_files.csv|
---------------------------------------------------
| Stanza_01*Inclinazione_01 | Stanza_02*Inclinazione_01
| 0.2                       | 0.432
| 0.4                       | 0.548
| 0.3                       | //
| 0.6                       | //

Se hai problemi puoi anche scrivermi in privato
Grazie

2
Progetti e script / Re:Unione CSV
« il: Marzo 25, 2020, 09:25 »
a niente infatti in quello originale l'avevo commentato, mi sono sbagliato

3
Progetti e script / Unione CSV
« il: Marzo 24, 2020, 17:59 »
Salve, sono un programmatore python super-junior, ho un problema con un piccolo script:
Devo unire due o più file CSV presenti in una cartella in un unico file (e questo sono riuscito a farlo), dopo averli uniti devo avere la possibilità di inserire uno o più nomi delle colonne in input in modo che mi faccia visualizzare solo quelle colonne.
PS: alcuni nomi delle colonne sono separati da "*" in modo da visualizzare più colonne con lo stesso nome.
Grazie mille
----------------------------------------------------
import pandas as pd
import glob

all_filenames = [i for i in glob.glob("path/*.csv")]
#inserisco il path per arrivare alla cartella che contiene i file da unire

dest_file = "path/Unione_files.csv"
#inserisco il path per arrivare alla cartella dell'unione

content = []
for file_name in sorted(all_filenames):
    with open(file_name, "r") as f:
        lines = f.readlines()
    for i, l in enumerate(lines):
        if len(content) == 0:
            content.append(l)
        elif i != 0:
            content.append(l)


with open(dest_file, "w") as f:
    f.writelines(content)

while True:
    seleziona = input("Inserisci le colonne che vuoi visualizzare: ")
    if seleziona == "stop":
        break

with open(dest_file, "r") as f:
    titoli = f.readline().split(",")
    indici = []
    for titolo in titoli:
        titolo_split = titolo.split('*')
        if seleziona in titolo_split:
            indice = titoli.index(titolo)
            indici.append(indice)
    righe = f.readlines()
    lista = []
    for riga in righe:
        rigasplit = riga.split(",")
        for i in indici:
            lista.append(rigasplit)

4
Benvenuto e regolamento / Presentazione Sendo
« il: Marzo 24, 2020, 13:23 »
Salve a tutti, sono Sendo e sono nuovo! Sono un paio di mesi che lavoro con python e vorrei imparare a conoscerlo meglio, spero di trovarmi bene!

Pagine: [1]