我有一个pandas dataframe,在这个dataframe中,我试图对一列字符串值运行一些操作,其中包括一些被解释为float('nan')
的缺失数据,相当于:
df = pd.DataFrame({'otherData':[1,2,3,4],'stringColumn':[float('nan'),'Random string one... ','another string.. ','a third string ']})
DataFrame
内容:
otherData stringColumn
1 nan
2 'Random string one... '
3 'another string.. '
4 ' a third string '
我想清除各种尾部省略号和空格的stringColumn
数据,并为nan
值填充空字符串,即''
。你知道吗
为此,我使用的代码相当于:
df['stringColumn'] = df['stringColumn'].fillna('')
df['stringColumn'] = df['stringColumn'].str.strip()
df['stringColumn'] = df['stringColumn'].str.strip('...')
df['stringColumn'] = df['stringColumn'].str.strip('..')
我遇到的问题是,当我在我编写的脚本中运行此代码时,它不起作用。在我的'stringColumn'列中仍然有nan
个值,并且仍然有一些省略号,但不是全部。没有警告消息。但是,当我在pythonshell中运行完全相同的代码时,它可以工作,为nan
输入''
,并根据需要进行清理。我试过在IDLE 3.5.0和Spyder 3.2.4中运行它,结果是一样的。你知道吗
这对我在pandas
v0.20.2
上的工作很好,因此您可能需要尝试升级首先调用
str.strip
,您可以在onestr.replace
调用中执行此操作。你知道吗如果
nan
不是NaN
类型,而是字符串,只需修改regex:正则表达式详细信息
正则表达式查找前导点或尾随点(一个或多个)并删除它们。你知道吗
您的代码对我来说也适用于
pandas==0.20.1
。你知道吗您也可以将其作为一个无正则表达式的单行程序来执行。
strip()
方法支持从字符串两端删除的chars
字符参数。你知道吗strip()
的Docstring:相关问题 更多 >
编程相关推荐