Python 3.x 如何将列表转换为str.';数据帧';对象不可调用错误

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]

请让我知道如何将列表转换为str

我的数据帧(df_meta_review1)结构示例:

-----------------------------------------------------
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

你犯了什么错误?