【问题标题】:how to split a column in dataframe into list of tuple如何将数据框中的列拆分为元组列表
【发布时间】:2021-11-20 14:31:31
【问题描述】:

我在网上找到了一些答案,但是我没有使用正则表达式的经验,我相信这是这里需要的,如果有其他方法会更好。

我的数据框中有一个复杂的列,需要用 ',' ';' 分隔'(' ')' ':'

示例字符串:

(36%) (litopenaaus varmrn ), une chapelure (25%) [vmaaî fmur, water,) sel, soja 0i), sucre, levure), eau. î farine de whca, amidon de mais, sart, cre. regulators (450, 500, stg). soybean [containing an antioxidant (300)]. sucre, powder of gariic, levure, th ci nœ (412). contient des crevettes"

应该拆分成包含以下内容的列表

["36%", "litopenaaus varmrn", "une chapelure (25%)", ["vmaaî fmur", "water", "sel", "soja 0i", "sucre", "levure"], "eau. î farine de whca", "amidon de mais", "sart", "cre. regulators ["(450, 500, stg)"]. soybean [containing an antioxidant (300)]. sucre", "powder of gariic", "levure"," th ci nœ (412). contient des crevettes"]

我为此编写的代码看起来像这样,但什么也没发生:

delimiters = ",", ":", "(", ")", ";"
regexPattern = '|'.join(map(re.escape, delimiters))

df['splited'] = df.ingredient.apply(lambda row: ' '.join((re.split(regexPattern, str(row)))))

【问题讨论】:

    标签: python list dataframe split tuples


    【解决方案1】:

    通过做

    delimiters = ",", ":", "(", ")", ";"
    regexPattern = '|'.join(map(re.escape, delimiters))
    
    df['splited'] = df.ingredient.apply(lambda row: ' '.join((re.split(regexPattern, str(row)))))
    

    您实际上已拆分 (re.split),然后使用空格字符 (' '.join) 加入创建的部件,如果您需要部件列表而不是单个新字符串,请不要加入它们,即

    df['splited'] = df.ingredient.apply(lambda row: re.split(regexPattern, str(row)))
    

    【讨论】:

    • 这可以很好地通过分隔符拆分字符串,但我需要将其拆分为元组列表。你知道它是如何工作的吗?
    猜你喜欢
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多