当我读取一个 csv 文件到熊猫数据框时,每个列被强制转换为它自己的数据类型。我有一个转换为对象的列。我想为本专栏执行一些字符串运算,比如分割值和创建列表。但是这样的操作是不可能的,因为它的 dtype 是 object。有人能告诉我如何将一列中的所有项目转换为字符串而不是对象吗?
我尝试了几种方法,但都没有效果。
a=lambda x: str(x).split(',') df['column'].apply(a)
df['column'].astype(str)
你试过把它分配回列吗?
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.,然后使用任何字符串函数
df['column'].str.
没有直接回答这个问题,但可能对其他人有帮助。
我有一个名为 Volume的列,其中既有 -(无效/NaN) ,也有用 ,格式化的数字
Volume
-
,
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