Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将数据类型为对象的列转换为数据帧中的字符串_Python_Pandas - Fatal编程技术网

Python 如何将数据类型为对象的列转换为数据帧中的字符串

Python 如何将数据类型为对象的列转换为数据帧中的字符串,python,pandas,Python,Pandas,当我将csv文件读取到dataframe时,每个列都转换为自己的数据类型。我有一个已转换为对象的列。我想对此列执行字符串操作,例如拆分值和创建列表。但不可能进行这样的操作,因为它的数据类型是object。有人能告诉我如何将列中的所有项转换为字符串而不是对象吗 我试了好几种方法,但都不管用。我用astype,str()来表示字符串等 a=lambda x: str(x).split(',') df['column'].apply(a) 或 您是否尝试将其重新分配给列 df['column'] =

当我将csv文件读取到dataframe时,每个列都转换为自己的数据类型。我有一个已转换为对象的列。我想对此列执行字符串操作,例如拆分值和创建列表。但不可能进行这样的操作,因为它的数据类型是object。有人能告诉我如何将列中的所有项转换为字符串而不是对象吗

我试了好几种方法,但都不管用。我用astype,str()来表示字符串等

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

您是否尝试将其重新分配给列

df['column'] = df['column'].astype('str') 
参考这一点,pandas数据帧存储指向字符串的指针,因此它是类型 “对象”。根据,您可以尝试:

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

由于字符串数据类型具有可变长度,因此默认情况下它存储为对象数据类型。如果要将它们存储为字符串类型,可以执行以下操作

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')
需要将其应用于字符串



您是否尝试了df['column'].astype('str')??请注意str上的撇号。pandas将始终将字符串存储为objects@sushmit的注释不再正确。自从
1.0.0
以来,熊猫有两种存储文本的方法。是的,我试过了。即使尝试了,该列的数据类型仍然是对象。您可以粘贴数据框的示例吗?我已经编辑了答案,请检查它是否工作。两个都不工作:(您使用的是哪种python版本?它不适用于megot
TypeError:数据类型“bytes256”不理解
,有什么建议吗?因为
熊猫
继承了几乎整个
numpy
的类型系统(除了
类别
)有关类型快捷键的更多信息,请参阅。在Python 3.8.2操作环境中,pandas将存储指向字符串的指针,最后的列类型将为“object”。我相信pandas将始终将字符串列存储为对象
df['Volume'] = df['Volume'].astype('str')
df['Volume'] = df['Volume'].str.replace(',', '')
df['Volume'] = pd.to_numeric(df['Volume'], errors='coerce')