2016-08-04 12 views
1

Ich habe ein pandas.core.series.Series die wie folgt aussieht:Vektorisierte Datumsanalyse in einer Pandas-Serie?

import pandas as pd 
s = pd.Series(["1/1/1900 8:00:00 AM", "1/1/1900 8:15:00 PM", "1/1/1900 9:02:11 PM"]) 

Ich versuche, die Zeit und AM/PM-Anzeige nur parsen, so etwas zu bekommen: 8:00:00 AM.

Hier ist, was ich habe:

s.str.split() 

Welche ergibt:

0 ['1/1/1900', '8:00:00', 'AM'] 
1 ['1/1/1900', '8:15:00', 'PM'] 
2 ['1/1/1900', '9:02:11', 'PM'] 

Von dort ist es ziemlich trivial ist, so etwas zu tun zu bekommen, was ich will:

" ".join(s.str.split()[0][1:]) 

Was produziert

'8:00:00 AM' 

Wie kann ich diese Methode jedoch vektorisieren? Ich habe einige Termine.

Antwort

1

IIUC können Sie einen zusätzlichen vektorisiert str.join Anruf auf den geteilten Streichern machen:

In [141]: 
s = pd.Series(["1/1/1900 8:00:00 AM", "1/1/1900 8:15:00 PM", "1/1/1900 9:02:11 PM"]) 
s.str.split().str[1:].str.join(" ") 

Out[141]: 
0 8:00:00 AM 
1 8:15:00 PM 
2 9:02:11 PM 
dtype: object