2016-07-11 2 views
2

Ich habe eine CSV-Datei:Umbenennen von Spalten in csv durch Spaltenindex

visitIp  userId idSite 
128.227.50.161 a  35 
24.222.206.154 a  35 
10.12.0.1  a  35 
10.12.0.1  a  35 
10.12.0.1  a  35 
24.222.206.154 a  35 

Ich möchte die Spalte in der dritten Index umbenennen, die ‚idSite‘ nur Id ist. Der Grund, warum ich es per Index machen möchte, ist, dass es möglicherweise andere csvs gibt, die in der dritten Spalte unterschiedliche Spaltennamen haben. Also muss ich nach Index umbenennen, nicht nach Namen. Das habe ich versucht. Aber es scheint nicht zu funktionieren:

import pandas as pd 
df = pd.read_csv('Book1.csv',dtype='unicode') 
df1 = df.rename(columns = {'df.ix[:,2:3]':'id'}) 
print df1 

Antwort

2

Sie können die Spalte umbenennen Einstellung der .columns.values[2] Wert direkt:

import pandas as pd 

df = pd.read_csv('Book1.csv', dtype='unicode', delim_whitespace=True) 
df.columns.values[2] = "id" 
print(df) 

Drucke:

  visitIp userId id 
0 128.227.50.161  a 35 
1 24.222.206.154  a 35 
2  10.12.0.1  a 35 
3  10.12.0.1  a 35 
4  10.12.0.1  a 35 
5 24.222.206.154  a 35 
0

Theres eine bessere Möglichkeit, dies zu tun mit df.rename; aber dies funktioniert:

df['Id'] = df['idSite'] 
df = df.drop('idSite', axis=1) 

sollten Sie eine Lösung in einem anderen Thread zu finden in der Lage