将一列中dataframe行中的列表转换为简单字符串

2024-06-25 23:05:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe,它在一列中有一个列表,我想把它转换成一个简单的字符串

    id          data_words_nostops
    26561364    [andrographolide, major, labdane, diterpenoid]
    26561979    [dgat, plays, critical, role, hepatic, triglyc]
    26562217    [despite, success, imatinib, inhibiting, bcr] 

期望输出

id          data_words_nostops
26561364    andrographolide, major, labdane, diterpenoid
26561979    dgat, plays, critical, role, hepatic, triglyc
26562217    despite, success, imatinib, inhibiting, bcr

Tags: iddatarolewordsmajorcriticalplaysnostops
3条回答

您可以使用pandasstr join进行以下操作:

df["data_words_nostops"] = df["data_words_nostops"].str.join(",")

df

      id           data_words_nostops
0   26561364    andrographolide,major,labdane,diterpenoid
1   26561979    dgat,plays,critical,role,hepatic,triglyc
2   26562217    despite,success,imatinib,inhibiting,bcr

试试这个:

df['data_words_nostops'] = df['data_words_nostops'].apply(lambda row : ','.join(row))

完整代码:

import pandas as pd
l1 = ['26561364', '26561979', '26562217']
l2 = [['andrographolide', 'major', 'labdane', 'diterpenoid'],['dgat', 'plays', 'critical', 'role', 'hepatic', 'triglyc'],['despite', 'success', 'imatinib', 'inhibiting', 'bcr']]


df = pd.DataFrame(list(zip(l1, l2)), 
               columns =['id', 'data_words_nostops'])
df['data_words_nostops'] = df['data_words_nostops'].apply(lambda row : ','.join(row))

输出:

id  data_words_nostops
0   26561364    andrographolide,major,labdane,diterpenoid
1   26561979    dgat,plays,critical,role,hepatic,triglyc
2   26562217    despite,success,imatinib,inhibiting,bcr
df["data_words_nostops"] = df.apply(lambda row: row["data_words_nostops"][0], axis=1)

相关问题 更多 >