2017-03-01 11 views
0

Ich bin neu in der Programmierung und ich muss einige (vielleicht sehr grundlegende) Sachen tun, aber ich habe wirklich damit zu kämpfen. Ich habe einige CSV-Dateien, wenn in Excel geöffnet, besteht es aus etwas 1500 Zeilen und 500 Spalten und alle Zahlen außer dem ersten Element der ersten Zeile (irgendeine Art von Header). Ich muss die Elemente der ersten 60 Zeilen überlagern und ganze Zeilen hinzufügen und subtrahieren.Importieren von CSV in Python und Bearbeiten der Daten

Ich habe ein paar Probleme mit dem Importieren der Dateien. Wenn ich nur readscsv benutze und sie dann zu einer leeren Datensatzzeile hinzufüge, bekomme ich das gewünschte Format (Liste der Zeilen?), Aber alle Elemente sind Zeichenketten anstelle von Fließkommazahlen (vielleicht, weil das erste Element in der Datei eine Zeichenkette ist?) und ich kann sie nicht dazu bringen, zu Schwimmern zu werden, also könnt ihr mir vielleicht ein bisschen helfen.

Eine andere Sache ist, wie manipuliere ich tatsächlich einen bestimmten Teil der Daten, wie eine Schleife durchläuft eine bestimmte Anzahl von Zeilen. Ich kann es nicht wirklich herausfinden, da mathematische Dinge an der Schnur nicht funktionieren.

Vielen Dank im Voraus für Ihre Hilfe und Kommentare!

+1

Es hilft, wenn Sie den Code, den Sie verwenden schreiben. Hast du das Modul 'Pandas' ausgecheckt? Es ist für die Datenmanipulation ausgelegt. – MattR

Antwort

1

Ich benutze das folgende und es funktioniert gut:

import numpy 
csv = numpy.loadtxt('something.csv', delimiter = ',') 

Wenn Sie die erste Zeile überspringen möchten, können Sie wie folgt tun:

csv = numpy.loadtxt('something.csv', delimiter = ',', skiprows = 1) 

Und wenn Sie auf das betreiben wollen ersten 60 Reihen:

X = csv[:60,:] 

Dann nutzen Sie einfach X für das, was Sie wollen. Hoffe, es

0

hilft Ich glaube nicht, dass, wenn die erste Zellenfolge ganze Spalte ist der String-Typ ist ..., dass das Etikett dieser Spalte sein kann. Versuchen Sie, die Daten aus der zweiten Reihe den Zugriff oder explizit den Namen der Spalte

zum Beispiel

df = pd.DataFrame({'$a':[1,2], '$b': [10,20]}) 
print df 

Ausgang

$a $b 
0 1 10 
1 2 20 

Sie den Namen der Spalte von

df.columns = ['a', 'b'] 
ändern

Ausgabe

a b 
0 1 10 
1 2 20 

und nach den Namen zu ändern können Sie die Spalte als df [ 'a'] oder af [ 'b']

+0

Ja, Pandas ist eine großartige Möglichkeit, aber es hat 500 Spalten, wie können Sie alle namentlich darauf zugreifen? nur sagend: P – CrisH

+0

coool: D Aber bald sollten wir einen Weg finden, der den Datensatz beschriften könnte: D;) – Berry

0

ist read_csv in Pandas Datenrahmen Was Sie brauchen, zugreifen.

  1. Die folgenden Codes erkennen automatisch Ihre Kopfzeile und setzen die Kopfzeilen als Spaltennamen.

    import pandas as pd 
    data = pd.read_csv('Your file name.csv') 
    
  2. In Bezug auf das Problem der String-Format von Daten gibt es keine Möglichkeit, ohne einige Beispieldaten zu helfen.

  3. Ich brauche Dinge wie Mittelung über die Elemente der ersten 60 Zeilen und Addieren und Subtrahieren kompletter Zeilen.

    die ersten 60 Zeilen für durchschnittlich, Sie so etwas wie dies tun können:

    import pandas as pd 
    
        lst1 = range(100) 
        lst2 = range(100,200) 
        lst3 = range(200,300) 
    
        data = pd.DataFrame({'a': lst1,'b': lst2,'c': lst3}) 
        data_avrg = data[:60].mean() 
    
        In[20]:data_avrg 
        Out[20]: 
        a  29.5 
        b 129.5 
        c 229.5 
        dtype: float64 
    

    Wenn Sie den Mittelwert von 60 Zeilen auf die vollständigen Reihen, wie alle Zeilen in Spalte a hinzufügen möchten oder subtrahieren, Sie können dies tun:

    data['a_add'] = data.a + data_avrg.a 
        data['a_subtract'] = data.a - data_avrg.a 
    
+0

Vielen Dank! Es importiert es jetzt wirklich sehr schön, ich kann damit arbeiten! –

Verwandte Themen