Python Pandas df ist nicht definiert
Ich habe ein problem mit einem Skript, das ich schrieb eine Weile zurück, vor einigen Monaten lief es ohne problem. Aber seitdem die OS aktualisiert wurde.
Das Skript funktioniert gut, bis er versucht, erstellen Sie ein dataframe mit pandas
import os
import pandas as pd
import matplotlib.pyplot as plt
dir_input = '/home/xxx/xxx/xxx/Script/input/'
osdir = []
alldir = []
for all_files in os.listdir(dir_input):
alldir.append(all_files)
for file in os.listdir(dir_input): #Adds all the specified files to the list osdir
if file.endswith('.xlsx'):
osdir.append(file)
print("Found {0}".format(file))
for filename in osdir:
(fileroot, extension) = os.path.splitext(filename)
print 'Processing file...'
print fileroot
print ''
# pandas works with so called dataframes to import the data. Since I dont need all the columns we only use column d,f and j
df = pd.read_excel(dir_input+filename,parse_cols="D,F,J", index=df.index)
...
Den Fehler bekomme ich mit spyder
Traceback (most recent call last):
File "<ipython-input-5-2cf9c86bcb8c>", line 1, in <module>
runfile('/home/xxx/python_scripts/xpos-frame-mean_batch_v1.1.py', wdir='/home/cdoering/python_scripts')
File "/home/xxx/anaconda/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 682, in runfile
execfile(filename, namespace)
File "/home/xxx/anaconda/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 78, in execfile
builtins.execfile(filename, *where)
File "/home/xxx/python_scripts/script.py", line 54, in <module>
df = pd.read_excel(dir_input+filename,parse_cols="D,F,J", index=df.index)
NameError: name 'df' is not defined
Mein Gefühl ist, es ist etwas falsch mit pandas, vielleicht? Ich deinstalliert es mit conda und es neu installiert. Versucht zu deinstallieren mit pip, aber nie benutzt pip, um es zu installieren, so dass Sie nicht finden konnte es. Ich bin an einem Verlust.
- Ich sehe nicht, wie das vorher funktioniert,
df
ist eigentlich nicht definiert, überall, so weit ich das sehen kann, bevor Sie das erste mal verwendet wird. - Sie verweisen auf den index vor der Schöpfung in dieser Zeile
df = pd.read_excel(dir_input+filename,parse_cols="D,F,J", index=df.index)
, warum ist das notwendig? - Nicht sicher, warum Sie denken, dass dies etwas zu tun mit Pandas.
df
ist in deinem code, und es ist nicht definiert, bevor die Zeile, die Sie verwenden es auf. - Sie sind Recht EdChum, entfernte ich die " index=df.index und es hat funktioniert. Vielen Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als @EdChum sagte in Ihrem Kommentar, das problem ist", verweisen auf die index vor der Schöpfung'. Speziell, wenn Sie haben
index=df.index
Sie beziehen sich auf dieindex
Attribut desdf
, aber Sie haben nicht geschaffen, diedf
noch, so ist das Attribut nicht vorhanden ist.df
in Ihrer Sitzung irgendwo?