Python 3.x 如何将列表转换为str.';数据帧';对象不可调用错误
请让我知道如何将列表转换为str 我的数据帧(df_meta_review1)结构示例:Python 3.x 如何将列表转换为str.';数据帧';对象不可调用错误,python-3.x,list,dataframe,Python 3.x,List,Dataframe,请让我知道如何将列表转换为str 我的数据帧(df_meta_review1)结构示例: ----------------------------------------------------- userID categories category_domain(I want a this!) ----------------------------------------------------- a1010 [pc, game]
-----------------------------------------------------
userID categories category_domain(I want a this!)
-----------------------------------------------------
a1010 [pc, game] pc,game-A
a1011 [mobile, game, education] mobile, game, education-A
我已经试过了
1. df_meta_review1['category_domain'] = df_meta_review1['categories'].astype('str') #error!
2. df_meta_review1['category_domain'] = df_meta_review1(['categories']).apply(','.join) #error!
3. df_meta_review1['category_domain'] = ",".join(map(str, df_meta_review1(['categories']))) #error!
我用以下代码重新创建了您的表
df_meta_review1=pd.DataFrame([('a101',['pc','game']),('a101',['mobile','game','education']),columns=['userID','categories'])
运行第一段代码不会出错。您确定它运行时出现错误吗?下面是结果表
userID类别\u域
0 a101[个人电脑,游戏][个人电脑,游戏]]
1 a1001[手机、游戏、教育][“手机”、“游戏”、“教育”]
如果我运行第二行,我也会得到一个错误。像这样:
TypeError:“DataFrame”对象不可调用
为了解决这个问题,我删除了数据帧名称后面的圆括号,因为错误表明我们试图将数据帧用作函数(这就是callable的意思)
df_meta_review1['category_domain']=df_meta_review1['categories'].应用(','.加入)
这不再生成错误,输出如下所示:
userID类别\u域
0 a101[个人电脑,游戏]个人电脑,游戏
1 a1001[手机、游戏、教育]手机、游戏、教育
我想这就是你要找的。
对于第三行代码,我得到了错误:
TypeError:“DataFrame”对象不可调用
同样,从数据帧名称后删除圆括号,会生成执行无误的代码
df_meta_review1['category_domain']=“,”。加入(映射(str,df_meta_review1['categories'))
然而,我不认为这是你正在寻找的
userID类别\u域
0 a101[pc,游戏]['pc','game'],['mobile','game','education']
1 a1001[手机、游戏、教育][“电脑”、“游戏”],[“手机”、“游戏”、“教育”]
您可以使用apply
函数在数据帧中循环,并定义一个函数来返回每行的结果,如下所示:
def app(row):
return ",".join(row['categories'])
并将其传递给应用函数:
df_meta_review1['category_domain'] = df_meta_review1.apply(lambda x: app(x),axis =1)
输出:
userID categories category_domain
0 a101 [pc, game] pc,game
1 a1001 [mobile, game, education] mobile,game,education
你犯了什么错误?