Python 3.x 将包中的函数应用于Python中的一列
给定一个小数据集,如下所示:Python 3.x 将包中的函数应用于Python中的一列,python-3.x,pandas,dataframe,apply,Python 3.x,Pandas,Dataframe,Apply,给定一个小数据集,如下所示: id floor room company 0 1 1 101.0 NaN 1 2 1 102.0 繁簡轉換器 ---> need to convert 2 3 2 201.0 缔美诗药妆皮肤管理中心 3 4 2 201.0 TT潮牌造型设计(上海) 4 5 2 202.0
id floor room company
0 1 1 101.0 NaN
1 2 1 102.0 繁簡轉換器 ---> need to convert
2 3 2 201.0 缔美诗药妆皮肤管理中心
3 4 2 201.0 TT潮牌造型设计(上海)
4 5 2 202.0 TT潮牌造型设计(北京)
5 6 3 NaN 繁簡轉換器 ---> need to convert
6 7 3 201.0 NaN
7 8 3 301.0 湖南杰牌传动科技发展有限公司
我需要使用此工具将company
列从繁体中文转换为简体中文
我用字符串繁簡轉換器代码>,它将成功转换:
>>> from hanziconv import HanziConv
>>> print(HanziConv.toSimplified('繁簡轉換器'))
繁简转换器
但当我尝试将其应用于公司
列时:
from hanziconv import HanziConv
df['company'] = df['company'].apply(HanziConv.toSimplified())
它返回一个错误:TypeError:toSimplified()缺少1个必需的位置参数:“text”
有人能帮助解决这个问题吗?非常感谢。我不知道HanziConv的情况,但这可能是工作
df['company']=df['company'].astype(str).apply(HanziConv.toSimplified)
是的,如果company
列中没有NaN
s,则此操作有效,否则,它将返回TypeError:“float”对象不可写
。将NaN
更改为其他空字符串,如“”。或者创建包装函数,仅当company
不可用时调用HanziConv.toSimplified
,如果我有多个列要转换,df[[company1',company2']].astype(str).apply(HanziConv.toSimplified)
引发错误ValueError:使用iterable设置时必须具有相等的len键和值
。