Wenn Sie in R einen Spaltenindex basierend auf dem Namen der Spalte abrufen müssen, können Sie Folgendes tun
idx <- which(names(my_data)==my_colum_name)
Gibt es eine Möglichkeit, das gleiche mit Pandas Dataframes zu tun?
Wenn Sie in R einen Spaltenindex basierend auf dem Namen der Spalte abrufen müssen, können Sie Folgendes tun
idx <- which(names(my_data)==my_colum_name)
Gibt es eine Möglichkeit, das gleiche mit Pandas Dataframes zu tun?
Update: "Veraltet seit Version 0.25.0: Verwenden Sie stattdessen np.asarray(..) oder DataFrame.values()." pandas docs
Für den Fall, dass Sie den Spaltennamen von der Position der Spalte ableiten wollen (andersherum als in der Frage des Autors), können Sie dies tun:
>>> df.columns.values()[location]
Mit @DSM Beispiel:
>>> df = DataFrame({"pear": [1,2,3], "apple": [2,3,4], "orange": [3,4,5]})
>>> df.columns
Index(['apple', 'orange', 'pear'], dtype='object')
>>> df.columns.values()[1]
'orange'
Andere Möglichkeiten:
df.iloc[:,1].name
df.columns[location] #(thanks to @roobie-nuby for pointing that out in comments.)
Um die Antwort von DSM ein wenig zu modifizieren, get_loc
hat in der aktuellen Version von Pandas (1.1.5) einige merkwürdige Eigenschaften, die vom Typ des Index abhängen, so dass Sie je nach Index-Typ einen Index, eine Maske oder ein Slice zurückbekommen können. Das ist etwas frustrierend für mich, weil ich nicht die gesamten Spalten ändern möchte, nur um den Index einer Variablen zu extrahieren. Viel einfacher ist es, die Funktion ganz zu vermeiden:
list(df.columns).index('pear')
Sehr einfach und wahrscheinlich ziemlich schnell.
import random
def char_range(c1, c2): # question 7001144
for c in range(ord(c1), ord(c2)+1):
yield chr(c)
df = pd.DataFrame()
for c in char_range('a', 'z'):
df[f'{c}'] = random.sample(range(10), 3) # Random Data
rearranged = random.sample(range(26), 26) # Random Order
df = df.iloc[:, rearranged]
print(df.iloc[:,:15]) # 15 Col View
for col in df.columns: # List of indices and columns
print(str(df.columns.get_loc(col)) + '\t' + col)
![Ergebnisse]( Ergebnisse
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.