/ / Python Ako získať prvý prvok tokenu dátumu - python, reťazec, dátum, vektor, pandy

Python Ako získať prvý prvok tokenu dátumu - python, reťazec, dátum, vektor, pandy

Používam Python 2.7 a moje údaje vyzerajú takto:

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

Chcem analyzovať DateVar a vytvoriť 2 nové polia: pole „mesiac“ a „rok“.

Bol som schopný tokenize "DateVar" pomocou vektorovej metódy reťazca:

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

Toto je o niečo bližšie k tomu, čo chcem, a potom som sa pokúsil o ďalšie rozdelenie mesiacov [9, 10, 2] pomocou nasledujúceho kódu:

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

Ale nečakane dostávam:

["9", "1", "2013"]

Ako teda môžem získať vektor všetkých mesiacov?

odpovede:

1 pre odpoveď č. 1

Ak potrebujete iba jeden stĺpec, môžete použiť:

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

Ak potrebujete stĺpec mesiac a deň, použite 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)

výstup:

  month  day
0      9    1
1     10    1
2      2    1

0 pre odpoveď č. 2

Je to preto, že

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

tak

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

0 pre odpoveď č. 3
v = [x[0] for x in df.DateVar.str.split("/")]