Mam następujący kod, który importuje plik CSV. Istnieją 3 kolumny i chcę ustawić dwie pierwsze z nich na zmienne. Kiedy ustawię drugą kolumnę na zmienną „wydajność”, kolumna indeksu również zostanie dołączona. Jak pozbyć się kolumny indeksu?
df = pd.DataFrame.from_csv('Efficiency_Data.csv', header=0, parse_dates=False)
energy = df.index
efficiency = df.Efficiency
print efficiency
Próbowałem użyć
del df['index']
po ustawieniu
energy = df.index
które znalazłem w innym poście, ale skutkuje to „KeyError: 'index'”
index.name = None
.Podczas czytania do iz pliku CSV dołącz argument,
index=False
więc na przykład:i czytać z csv
Powinno to zapobiec problemowi, więc nie musisz go później naprawiać.
źródło
index_col=False
.df.to_sql("table",cursor,if_exists="append",index=False)
również naprawia błąd sqlitesqlite3.OperationalError: table message has no column named index
index=False
dlato_excel()
iindex_col=False
zread_csv()
w pandach 0.23.4. : - /df.reset_index(drop=True, inplace=True)
źródło
drop
: "Nie próbuj wstawiać indeksu do kolumn dataframe. Spowoduje to zresetowanie indeksu do domyślnego indeksu całkowitego." pandas.pydata.org/pandas-docs/stable/generated/…inplace=True
.Możesz ustawić jedną z kolumn jako indeks, na przykład w przypadku, gdy jest to „identyfikator”. W takim przypadku kolumna indeksu zostanie zastąpiona jedną z wybranych kolumn.
źródło
Jeśli twój problem jest taki sam jak mój, gdzie chcesz po prostu zresetować nagłówki kolumn z 0 do rozmiaru kolumny. Robić
EDYTOWAĆ:
Nie jest to dobry pomysł, jeśli masz heterogeniczne typy danych. Lepiej po prostu użyj
źródło
możesz określić która kolumna jest indeksem w Twoim pliku csv używając parametru index_col funkcji from_csv jeśli to nie rozwiąże problemu podaj przykładowe dane
źródło
df=df.reset_index()
Wtedy robię jedną rzeczdf=df.drop(['index'],axis=1)
źródło
df.reset_index().drop(columns=['yourfirstindex', 'yoursecondindex'])
, że działa z „indeksem” tylko w standardowym przypadku, gdy indeks nie ma nazwy, a następnie staje się kolumną o nazwie „indeks” zdf.reset_index().drop(columns=['index'])
. Dodany parametraxis=1
jest wartością domyślną. Ta metoda nie jest zalecana, @ SubhojitMukherjeereset_index(inplace=True)
działa „inplace”, a tym samym oszczędza pamięć.