как разделить столбец?

есть поле с датами "tr_day" в след формате: "0 10:23:26". нужно создать новое поле "day" вычленив из поля "tr_day" первый символ до пробела, например, "0". использую str.split:

tr['tr_day1']=tr['tr_datetime'].str.split(' ',n=2,expand=True)

но выдается ошибка

ValueError: Wrong number of items passed 2, placement implies 1

что я делаю не так?


Ответы (2 шт):

Автор решения: strawdog
tr["tr_day1"] = tr["tr_datetime"].str.split().str[0]
→ Ссылка
Автор решения: MaxU

Воспользуйтесь методом Series.str.extract().

Исходный фрейм

In [12]: df
Out[12]:
   tr_datetime
0   0 10:23:26
1   1 11:11:11
2  20 20:20:20

Решение

df["tr_day1"] = df["tr_datetime"].str.extract(r"(\d+).*").astype("int16")

Результат:

In [14]: df
Out[14]:
   tr_datetime  tr_day1
0   0 10:23:26        0
1   1 11:11:11        1
2  20 20:20:20       20

In [15]: df.dtypes
Out[15]:
tr_datetime    object
tr_day1         int16
dtype: object
→ Ссылка