Lesen und Berechnen aus der .dat-Datei in Python
Ich muss eine .dat-Datei in Python lesen, die insgesamt 12 Spalten und Millionen Zeilen enthält. Ich muss Spalte 2,3 und 4 mit Spalte 1 für meine Berechnung teilen. Muss ich also vor dem Laden der DAT-Datei alle anderen unerwünschten Spalten löschen? Wenn nicht, wie kann ich die Spalte selektiv deklarieren und Python bitten, die Berechnung durchzuführen?
ein Beispiel für die DAT-Datei wäre data.dat
Ich bin neu in Python, daher wäre eine kleine Anleitung zum Öffnen, Lesen und Rechnen sehr hilfreich.
Ich habe den Code hinzugefügt, den ich als Starthilfe für Ihren Vorschlag verwende:
from sys import argv
import pandas as pd
script, filename = argv
txt = open(filename)
print "Here's your file %r:" % filename
print txt.read()
def your_func(row):
return row['x-momentum'] / row['mass']
columns_to_keep = ['mass', 'x-momentum']
dataframe = pd.read_csv('~/Pictures', delimiter="," , usecols=columns_to_keep)
dataframe['new_column'] = dataframe.apply(your_func, axis=1)
und auch den fehler bekomme ich durch:
Traceback (most recent call last):
File "flash.py", line 18, in <module>
dataframe = pd.read_csv('~/Pictures', delimiter="," , usecols=columns_to_keep)
File "/home/trina/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 529, in parser_f
return _read(filepath_or_buffer, kwds)
File "/home/trina/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 295, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "/home/trina/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 612, in __init__
self._make_engine(self.engine)
File "/home/trina/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 747, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "/home/trina/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py,", line 1119, in __init__
self._reader = _parser.TextReader(src, **kwds)
File "pandas/parser.pyx", line 518, in pandas.parser.TextReader.__cinit__ (pandas/parser.c:5030)
ValueError: No columns to parse from file