Я пытаюсь преобразовать столбец pandas в строку, чтобы использовать str.extract()
.
Когда я запускаю print(data.dtypes)
, я вижу следующее:
:Address Line 1: object
:City: object
Address Line 2: object
Case Initiation Date: object
Case Number: object
Case Status: object
Defendants object
Demand Amount: object
Motion Status object
Zip: object
6 object
dtype: object
Я пытаюсь разделить переменную data['Motion Status']
с помощью регулярного выражения, но сталкиваюсь с препятствиями. Во-первых, вот быстрый взгляд на data['Motion Status']
:
0 b'01/31/202008:30155'
1 b'02/03/202008:30155'
2 b'02/03/202008:30155'
3 b'02/04/202008:30155'
4 b'02/04/202008:30155'
Name: Motion Status, dtype: object
Вы заметите, что он имеет формат дд / мм / гггг + чч: мм + 3-ди git число. Это код, который я использовал, чтобы попытаться разобрать дату по времени (я сделаю '155' после того, как у меня получится):
data['Motion Status (date)'] = data['Motion Status'].str.extract('\d{2}\/\d{2}\/\d{4}', expand=True)
Когда я запускаю его, он возвращает ошибку TypeError: Cannot use .str.extract with values of inferred dtype 'bytes'.
Я перепробовал четыре разных решения, но ни одно из них не сработало (при повторном запуске строки str.extract
возвращается то же сообщение об ошибке, что и выше):
data['Motion Status'] = data['Motion Status'].astype('|S')
data['Motion Status'] = data['Motion Status'].astype('str')
data['Motion Status'] = data['Motion Status'].astype(str)
data.astype(str)['Motion Status'].map(lambda x: type(x))
Может кто-нибудь помочь мне здесь? Я действительно не намерен преобразовывать эту переменную в строку. Я просто хочу иметь возможность разобрать дату, время и «155» в конце (кстати, это не всегда «155» - только в первых 20 строках или около того).
Буду признателен за любую помощь!
Обновление:
Теперь я могу запустить эту строку кода data['Motion Status (date)'], data['Time'], data['Other'] = data['Motion Status'].str.extract('(\d{2})/(\d{2})/(\d{4})', expand=True)
, и она выполняется без ошибок. Честно говоря, я не знаю, что я сделал, чтобы запустить этот прогон ... Однако теперь я столкнулся с немного другой проблемой, когда код создает три новые переменные, но они заполнены нулями, единицами или двойками во всех строках ( а не части строки данных ['Motion Status'], которые я надеялся получить. Например:
Motion Status (date) Time Other
0 0 1 2
1 0 1 2
2 0 1 2
3 0 1 2
4 0 1 2
Так что я не совсем вернулся к исходной точке, но мне все еще не удалось способен анализировать различные части строки.