Python: Konvertierung string (wissenschaftliche notation) zu schweben
Ich versuche zu importieren, eine große .csv-Datei mit text und zahlen mit genfromtxt in numpy. Ich bin nur daran interessiert, zwei Spalten. Ich habe die meisten der import-aussortiert mit:
def importfile(root):
data = root.entry.get()
atw = np.genfromtxt(data, delimiter=",",
skip_header=1,
skip_footer=2,
autostrip=True,
usecols=(25,26),
dtype=("|S10"))
elem = atw[:,0]
concs = atw[:,1]
print(elem)
print(concs)
Mit Ausgang für elem und ermäßigt jeweils:
['Na2O' 'MgO' 'Al2O3' 'SiO2' 'P2O5' 'SO3' 'Cl' 'K2O' 'CaO' 'TiO2' 'Cr2O3'
'MnO' 'FeO' 'NiO' 'Cu2O' 'ZnO' 'Ga2O3' 'SrO' 'Y2O3']
['3.76E+00' '1.31E+01' '1.14E+01' '4.04E+01' '1.24E+00' '5.89E-02'
'2.43E-02' '1.53E+00' '1.49E+01' '2.87E+00' '6.05E-02' '1.96E-01'
'1.17E+01' '3.69E-02' '8.73E-03' '1.39E-02' '1.93E-03' '1.88E-01'
'5.58E-03']
Ich habe versucht, viele verschiedene Dinge für die Umwandlung der ermäßigt string in ein float, aber es scheint nicht, wie die Tatsache, dass die ermäßigt sind in der wissenschaftlichen notation.... gibt es eine Möglichkeit zu drehen, ermäßigt Werte in einem float? Vielen Dank im Voraus für Ihre Unterstützung.
InformationsquelleAutor Dr. Toboggan | 2014-05-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
float
Funktion kann dies tun:oder für eine Liste:
n = ['3.76E+00', '1.31E+01', '1.14E+01'] [float(i) for i in n]
float(i) wird nicht für mich arbeiten. Ich habe eine gemischte Liste, und ich will es konvertieren. Nicht sicher, was sollte ich verwenden, wenn ich nicht wollen, um es zu teilen.
InformationsquelleAutor RichieHindle
Nur allgemein erwähnt, als es löst ein ähnliches problem, das brachte mich zu dieser Seite.
InformationsquelleAutor mist42nz
Vielleicht hilfreich sein, für niemanden, ich hatte ähnliches problem und hab ich das auf stackoverflow über die Anwendung pandas to_numeric zu DataFrame Spalten wie ersetzen von Kommas durch Punkte
InformationsquelleAutor Yury