如何按指定次数重复DataFrame列中关联数字的单词?
解决方案
可以用Python的pandas库实现这个需求,核心是写一个自定义函数处理ColB的每个字符串,再通过apply批量处理整列数据。
代码实现
import pandas as pd # 创建示例DataFrame df = pd.DataFrame({ 'ColA': ['A', 'B'], 'ColB': ['Banana:2;Kiwi:4;Apple:1', 'Kiwi:1;Orange:4'] }) # 定义处理单个字符串的函数 def expand_colb(s): # 按分号拆分每个单词-数字条目 items = s.split(';') result = [] for item in items: # 拆分单词和重复次数 word, count = item.split(':') # 按次数重复单词并加入结果列表 result.extend([word] * int(count)) # 用分号拼接成最终字符串 return ';'.join(result) # 应用函数到ColB列 df['ColB'] = df['ColB'].apply(expand_colb) print(df)
输出结果
ColA ColB 0 A Banana;Banana;Kiwi;Kiwi;Kiwi;Kiwi;Apple 1 B Kiwi;Orange;Orange;Orange;Orange
步骤说明
- 把
ColB的每个字符串按分号拆成独立的单词:数字条目; - 对每个条目拆分出单词和重复次数,将单词重复对应次数后存入临时列表;
- 把临时列表里的元素用分号拼接成新字符串,替换原
ColB列的值。
内容的提问来源于stack exchange,提问作者Tom H
相关产品推荐
相关产品推荐

