Подтвердить что ты не робот

Как преобразовать столбец с dtype как объект в строку в Pandas Dataframe

Когда я читаю файл csv в pandas dataframe, каждый столбец переводится в собственные типы данных. У меня есть столбец, который был преобразован в объект. Я хочу выполнить строковые операции для этого столбца, такие как разделение значений и создание списка. Но такая операция невозможна, поскольку ее dtype является объектом. Может кто-нибудь, пожалуйста, дайте мне знать, как преобразовать все элементы столбца в строки вместо объектов?

Я попробовал несколько способов, но ничего не получилось. Я использовал astype, str(), to_string и т.д.

a=lambda x: str(x).split(',')
df['column'].apply(a)

или

df['column'].astype(str)
4b9b3361

Ответ 1

поскольку типы данных строк имеют переменную длину, по умолчанию они хранятся как объект dtype. Если вы хотите сохранить их как тип строки, вы можете сделать что-то вроде этого.

df['column'] = df['column'].astype('|S80') #where the max length is set at 80 bytes,

или, альтернативно,

df['column'] = df['column'].astype('|S') # which will by default set the length to the max len it encounters

Ответ 2

Вы пытались присвоить его обратно в колонку?

df['column'] = df['column'].astype('str') 

Ссылаясь на этот вопрос, информационный фрейм pandas хранит указатели на строки и, следовательно, имеет тип "объект". Согласно документам, вы можете попробовать:

df['column_new'] = df['column'].str.split(',') 

Ответ 3

Не отвечая на вопрос напрямую, но это может помочь кому-то еще.

У меня есть столбец с именем Volume, имеющий как - (недействительный /NaN), так и числа, отформатированные с помощью ,

df['Volume'] = df['Volume'].astype('str')
df['Volume'] = df['Volume'].str.replace(',', '')
df['Volume'] = pd.to_numeric(df['Volume'], errors='coerce')

Кастинг в строку требуется для того, чтобы обратиться к str.replace

pandas.Series.str.replace
pandas.to_numeric

Ответ 4

Вы можете попробовать использовать df['column'].str., а затем использовать любую строковую функцию. Pandas документация включает такие, как split