/ / Python Jak zdobyć 1. element tokena daty - python, ciąg, data, wektor, pandy

Python Jak zdobyć 1. element tokenu daty - python, ciąg, data, wektor, pandy

Korzystam z Python 2.7, a moje dane wyglądają następująco:

import pandas as pd
df = pd.DataFrame({ "DateVar" : ["9/1/2013", "10/1/2013", "2/1/2014"],
"Field" : "foo" })

Chcę przeanalizować DateVar, aby utworzyć 2 nowe pola: pole „miesiąc” i pole „rok”.

Byłem w stanie tokenizować „DateVar” za pomocą wektorowej metody ciągu:

df.DateVar.str.split("/")

Jest to trochę bliższe temu, co chcę, więc następnie spróbowałem pokroić miesiące [9, 10, 2] przy użyciu następującego kodu:

df.DateVar.str.split("/")[0]

Ale nieoczekiwanie otrzymuję:

[„9”, „1”, „2013”]

Jak mogę uzyskać wektor wszystkich miesięcy?

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli potrzebujesz tylko jednej kolumny, możesz użyć:

df.DateVar.str.split("/").str[0]

Jeśli potrzebujesz kolumny miesiąca i dnia, użyj str.extract:

import pandas as pd
df = pd.DataFrame({ "DateVar" : ["9/1/2013", "10/1/2013", "2/1/2014"],
"Field" : "foo" })

print df.DateVar.str.extract(r"(?P<month>d+)/(?P<day>d+)/d+").astype(int)

wyjście:

  month  day
0      9    1
1     10    1
2      2    1

0 dla odpowiedzi nr 2

To dlatego, że

>>> df.DateVar.str.split("/")
0     [9, 1, 2013]
1    [10, 1, 2013]
2     [2, 1, 2014]

więc

>>> df.DateVar.str.split("/")[0]
["9", "1", "2013"]

0 dla odpowiedzi № 3
v = [x[0] for x in df.DateVar.str.split("/")]