У меня есть простая строка кода:

print(df['Duration'])
df['Duration'].str.split(':')
print(df['Duration'])

Вот значение, которое я имею для каждого отпечатка

00:58:59
00:27:41
00:27:56
Name: Duration, dtype: object

Почему раскол не работает здесь? Что мне не хватает?

0
Simon Breton 20 Дек 2019 в 21:38

1 ответ

Лучший ответ

str.split не изменяет столбец inplace , поэтому вам нужно присвоить результат чему-то:

import pandas as pd

df = pd.DataFrame({'Duration':['00:58:59', '00:27:41', '00:27:56'], 'other':[10, 20, 30]})

df['Duration'] = df['Duration'].str.split(':')
print(df)

Печать:

       Duration  other
0  [00, 58, 59]     10
1  [00, 27, 41]     20
2  [00, 27, 56]     30

Если вы хотите расширить столбцы DataFrame путем разделения, вы можете попробовать:

import pandas as pd

df = pd.DataFrame({'Duration':['00:58:59', '00:27:41', '00:27:56'], 'other':[10, 20, 30]})

df[['hours', 'minutes', 'seconds']] = df['Duration'].str.split(':', expand=True)
print(df)

Печать:

   Duration  other hours minutes seconds
0  00:58:59     10    00      58      59
1  00:27:41     20    00      27      41
2  00:27:56     30    00      27      56
1
Andrej Kesely 20 Дек 2019 в 18:51