Python在数据框中将列表转换为字符串

Python在数据框中将列表转换为字符串,python,pandas,Python,Pandas,我在pandas数据框的单元格值中有一堆列表和类似字符串的文本。我正在尝试将列表转换为字符串,我可以将列表转换为字符串,但它也会拆分字符串。如果单元格在特定列中包含列表[],如何仅应用此逻辑 raw_data = {'Name': [['\'John Smith\''], ['\'Jane Doe\'']], 'id': [['\'A1005\'','\'A1006\''], 'A200,A400,A500']} dfRaw = pd.DataFrame(raw_data, co

我在pandas数据框的单元格值中有一堆列表和类似字符串的文本。我正在尝试将列表转换为字符串,我可以将列表转换为字符串,但它也会拆分字符串。如果单元格在特定列中包含列表[],如何仅应用此逻辑

raw_data = {'Name': [['\'John Smith\''], ['\'Jane Doe\'']],
        'id': [['\'A1005\'','\'A1006\''], 'A200,A400,A500']}
dfRaw = pd.DataFrame(raw_data, columns = ['Name','id'])
dfRaw['Name'] = dfRaw['Name'].astype(str)
资料

需要这样的输出:

    Name                id
0   ["'John Smith'"]    'A1005','A1006'
1   ["'Jane Doe'"]      A200,A400,A500
但下面的代码也在拆分字符串单元格值

dfRaw['id'] = dfRaw['id'].apply(lambda x: ','.join([str(i) for i in x]))

Name                     id
0   ["'John Smith'"]    'A1005','A1006'
1   ["'Jane Doe'"]  A,2,0,0,,,A,4,0,0,,,A,5,0,0
您可以使用生成一个新列表,其中
id
中的行将使用的列表项连接起来。 您可以使用以下方法检查条目是否为
列表

输出

dfRaw['id'] = dfRaw['id'].apply(lambda x: ','.join([str(i) for i in x]))

Name                     id
0   ["'John Smith'"]    'A1005','A1006'
1   ["'Jane Doe'"]  A,2,0,0,,,A,4,0,0,,,A,5,0,0
df['id'] = [','.join(i) if isinstance(i, list) else i for i in df['id']]
       Name                    id
0  ['John Smith']          A1005,A1006
1    ['Jane Doe']        A200,A400,A500