2016-05-22 5 views
0

Ich versuche, die Ganzzahlen in einer Reihe von Schrägstrich durch Verwendung von rsplit Funktion von Python zu trennen, aber es funktioniert nicht.Split-Integer in einer Serie von Schrägstrich

Original Data

date 
1/30/2015 
1/30/2015 
1/30/2015 
1/30/2015 
1/30/2015 
1/30/2015 
1/30/2015 
1/30/2015 
1/30/2015 
1/30/2015 

erwartet

Daten

Ich möchte von '/'

date 

'1' '30' '2015' 
'1' '30' '2015' 
'1' '30' '2015' 
'1' '30' '2015' 
'1' '30' '2015' 
'1' '30' '2015' 
'1' '30' '2015' 

Zweck dabei ist, nehmen das Jahr, in separaten Spalte spalten. Ich habe vorher versucht, den unteren Code zu verwenden.

date = df['date'] 
split = date.rsplit("/") 
OutputData['Year']=split[2] 

Split [2] -> ist Jahr Datum Serie - Zweck Jahr in separaten Spalten nehmen

vielen Dank im Voraus

dies ist der Fehler, den ich jedes Mal bekommen ‚dies ist ein Reihe von Objekten

Attribute: ‚Serie‘ Objekt hat kein Attribut ‚split‘

+0

oder ersetzen? date.replace ('/', "") für Ex. ? – glls

+0

Ist df ein Wörterbuch? – aBiologist

+0

split_data = data.split ('/') ... tag = split_data [0], monat = split_data [1], year = split_data [2]? –

Antwort

2

können Sie verwenden, um die str Accessor String-Methoden auf die se zu verwenden ries:

df["date"].str.rsplit("/") 

Oder sie in verschiedenen Spalten haben:

df["date"].str.rsplit("/", expand = True) 

Mit einer Reihe, könnte es besser sein auf Datetime-Daten zu arbeiten:

import pandas as pd 
pd.to_datetime(df["date"]).dt.year 
Out[10]: 
0 2015 
1 2015 
2 2015 
3 2015 
4 2015 
5 2015 
6 2015 
7 2015 
8 2015 
9 2015 
Name: date, dtype: int64 
1

IMO wäre es sein nützlich, um nur die Zeichenkette in datetime mit zu konvertieren, so dass Sie arithmetische Operationen darauf durchführen können und wenn Sie das Jahr oder eine andere Datum/Uhrzeit-Komponente verwenden möchten die vektorisierte dt accessor:

In [23]: 
df['date'] = pd.to_datetime(df['date']) 
df 

Out[23]: 
     date 
0 2015-01-30 
1 2015-01-30 
2 2015-01-30 
3 2015-01-30 
4 2015-01-30 
5 2015-01-30 
6 2015-01-30 
7 2015-01-30 
8 2015-01-30 
9 2015-01-30 

In [24]: 
df['year'] = df['date'].dt.year 
df 

Out[24]: 
     date year 
0 2015-01-30 2015 
1 2015-01-30 2015 
2 2015-01-30 2015 
3 2015-01-30 2015 
4 2015-01-30 2015 
5 2015-01-30 2015 
6 2015-01-30 2015 
7 2015-01-30 2015 
8 2015-01-30 2015 
9 2015-01-30 2015