在熊猫数据框中如何将 dtype 作为对象的列转换为字符串

当我读取一个 csv 文件到熊猫数据框时,每个列被强制转换为它自己的数据类型。我有一个转换为对象的列。我想为本专栏执行一些字符串运算,比如分割值和创建列表。但是这样的操作是不可能的,因为它的 dtype 是 object。有人能告诉我如何将一列中的所有项目转换为字符串而不是对象吗?

我尝试了几种方法,但都没有效果。

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

或者

df['column'].astype(str)
532697 次浏览

你试过把它分配回列吗?

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

参照这个 有个问题,熊猫数据框架存储指向字符串的指针,因此它是类型 根据 医生,你可以尝试:

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

由于字符串数据类型的长度是可变的,因此默认情况下将其存储为对象 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

您可以尝试使用 df['column'].str.,然后使用任何字符串函数

没有直接回答这个问题,但可能对其他人有帮助。

我有一个名为 Volume的列,其中既有 -(无效/NaN) ,也有用 ,格式化的数字

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

要将其应用到 < a href = “ https://panas.pydata.org/panas-docs/stat/generated/Pandas.Series.str.replace e.html”rel = “ norefrer”> str.place,需要将其转换为字符串

熊猫系列 Str.place
To _ numeric