当我将csv文件读取到pandas数据帧时,每个列都会转换为自己的数据类型.我有一个转换为对象的列.我想为此列执行字符串操作,例如拆分值和创建列表.但是没有这样的操作是可能的,因为它的dtype是对象.任何人都可以让我知道将列的所有项目转换为字符串而不是对象的方法吗?
我尝试了几种方法但没有任何效果.我使用了astype,str(),to_string等.
a=lambda x: str(x).split(',')
df['column'].apply(a)
Run Code Online (Sandbox Code Playgroud)
df['column'].astype(str)
Run Code Online (Sandbox Code Playgroud)
Sir*_* S. 26
由于字符串数据类型具有可变长度,因此默认情况下将其存储为对象dtype.如果要将它们存储为字符串类型,则可以执行以下操作.
df['column'] = df['column'].astype('|S80') #where the max length is set at 80 bytes,
Run Code Online (Sandbox Code Playgroud)
或者
df['column'] = df['column'].astype('|S') # which will by default set the length to the max len it encounters
Run Code Online (Sandbox Code Playgroud)
Hyp*_*nja 16
您是否尝试将其分配回列?
df['column'] = df['column'].astype('str')
Run Code Online (Sandbox Code Playgroud)
参考这个问题,pandas数据帧存储指向字符串的指针,因此它是'object'类型.根据文档,您可以尝试:
df['column_new'] = df['column'].str.split(',')
Run Code Online (Sandbox Code Playgroud)
zur*_*fyx 10
没有直接回答问题,但它可能会帮助别人.
我有一个名为的列Volume,包含-(无效/ NaN)和格式化的数字,
df['Volume'] = df['Volume'].astype('str')
df['Volume'] = df['Volume'].str.replace(',', '')
df['Volume'] = pd.to_numeric(df['Volume'], errors='coerce')
Run Code Online (Sandbox Code Playgroud)
要将其应用于str.replace,需要强制转换为字符串
pandas.Series.str.replace
pandas.to_numeric
| 归档时间: |
|
| 查看次数: |
171374 次 |
| 最近记录: |