Python 类型错误:ufunc';添加';未包含具有签名匹配类型dtype(';S32';)dtype(';S32';)dtype(';S32';)的循环 示例数据帧: 样本输出 这是我的代码: 这就是我想要达到的目标
在清理列中的每个hashtags字符串并删除不必要的括号、字符和引号/逗号之后,我尝试在该列中的每个hashtags字符串之前添加“#”。 我在整个代码中执行了很多数据清理和操作操作,它指向了这个错误 错误Python 类型错误:ufunc';添加';未包含具有签名匹配类型dtype(';S32';)dtype(';S32';)dtype(';S32';)的循环 示例数据帧: 样本输出 这是我的代码: 这就是我想要达到的目标,python,string,list,pandas,lambda,Python,String,List,Pandas,Lambda,在清理列中的每个hashtags字符串并删除不必要的括号、字符和引号/逗号之后,我尝试在该列中的每个hashtags字符串之前添加“#”。 我在整个代码中执行了很多数据清理和操作操作,它指向了这个错误 错误 文件“C:///filename.py”,第469行,在 df1['Hashtags']=“#”+df1['Hashtags'] 文件“C:\ANACONDA\lib\site packages\pandas\core\ops.py”,第715行,在包装器中 结果=包装结果(安全值(左值、右
文件“C:///filename.py”,第469行,在
df1['Hashtags']=“#”+df1['Hashtags']
文件“C:\ANACONDA\lib\site packages\pandas\core\ops.py”,第715行,在包装器中
结果=包装结果(安全值(左值、右值))
文件“C:\ANACONDA\lib\site packages\pandas\core\ops.py”,第676行,在safe\u na\u op中
返回na_op(左值、右值)
文件“C:\ANACONDA\lib\site packages\pandas\core\ops.py”,第662行,na_op
结果[掩码]=op(x[掩码],y)
文件“C:\ANACONDA\lib\site packages\pandas\core\ops.py”,第70行,在
radd=arith_方法(λx,y:y+x,名称('radd'),op(+'),
TypeError:ufunc“add”不包含签名类型与dtype('S32')dtype('S32')dtype('S32')匹配的循环
如果存在更快的矢量化解决方案,我认为最好不要使用iterrows
循环
也许有助于取代:
for index,row in df1.iterrows():
df1['Hashtags'] =df1['Hashtags'].str.strip("u' ',")
for index,row in df1.iterrows():
df1['Hashtags'] = df1['Hashtags'].str.strip("',")
for index,row in df1.iterrows():
df1['Hashtags'] = df1['Hashtags'].str.strip("u'")
要加倍-首先删除字符u、
和第二个”
:
df1['Hashtags'] = df1['Hashtags'].str.strip("[u, ]").str.strip("'")
df1['Hashtags'] = "#" + df1['Hashtags']
或添加aType
:
df1['Hashtags'] = "#" + df1['Hashtags'].astype(str)
File "C:/../filename.py", line 469, in <module>
df1['Hashtags'] = "#" + df1['Hashtags']
File "C:\ANACONDA\lib\site-packages\pandas\core\ops.py", line 715, in wrapper
result = wrap_results(safe_na_op(lvalues, rvalues))
File "C:\ANACONDA\lib\site-packages\pandas\core\ops.py", line 676, in safe_na_op
return na_op(lvalues, rvalues)
File "C:\ANACONDA\lib\site-packages\pandas\core\ops.py", line 662, in na_op
result[mask] = op(x[mask], y)
File "C:\ANACONDA\lib\site-packages\pandas\core\ops.py", line 70, in <lambda>
radd=arith_method(lambda x, y: y + x, names('radd'), op('+'),
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('S32') dtype('S32') dtype('S32')
for index,row in df1.iterrows():
df1['Hashtags'] =df1['Hashtags'].str.strip("u' ',")
for index,row in df1.iterrows():
df1['Hashtags'] = df1['Hashtags'].str.strip("',")
for index,row in df1.iterrows():
df1['Hashtags'] = df1['Hashtags'].str.strip("u'")
df1['Hashtags'] = df1['Hashtags'].str.strip("[u, ]").str.strip("'")
df1['Hashtags'] = "#" + df1['Hashtags']
df1['Hashtags'] = "#" + df1['Hashtags'].astype(str)