Как преобразовать столбец с 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)
Ответы
Ответ 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
Ответ 5
Используйте df.to_string()
Ссылка ссылки
http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.to_string.html