基于字符数替换DataFrame中段落内容的技术实现需求
替换DataFrame中短段落为“Read More...”
需求说明
现有一个包含paragraph(段落文本)和Number of Characters(对应段落字符数)两列的DataFrame,需将字符数少于100的段落替换为“Read More...”,字符数≥100的段落保留原内容。
示例输入
| paragraph | Number of Characters |
|---|---|
| Paragraph 1 | 40 |
| Paragraph 2 | 120 |
预期输出
| paragraph | Number of Characters |
|---|---|
| Read More... | 40 |
| Paragraph 2 | 120 |
实现方法
以下是几种简洁高效的实现方式:
方法1:使用numpy.where
通过条件判断直接赋值,代码简洁高效:
import pandas as pd import numpy as np # 创建示例DataFrame data = { 'paragraph': ['Paragraph 1', 'Paragraph 2'], 'Number of Characters': [40, 120] } df = pd.DataFrame(data) # 执行替换 df['paragraph'] = np.where(df['Number of Characters'] < 100, 'Read More...', df['paragraph'])
方法2:使用pandas.loc
利用布尔索引定位目标行并赋值,适合需要更精细控制的场景:
import pandas as pd # 创建示例DataFrame data = { 'paragraph': ['Paragraph 1', 'Paragraph 2'], 'Number of Characters': [40, 120] } df = pd.DataFrame(data) # 执行替换 df.loc[df['Number of Characters'] < 100, 'paragraph'] = 'Read More...'
方法3:使用apply函数
通过自定义逻辑逐行处理,灵活性强:
import pandas as pd # 创建示例DataFrame data = { 'paragraph': ['Paragraph 1', 'Paragraph 2'], 'Number of Characters': [40, 120] } df = pd.DataFrame(data) # 执行替换 df['paragraph'] = df.apply(lambda row: 'Read More...' if row['Number of Characters'] < 100 else row['paragraph'], axis=1)
执行上述任意一种方法后,即可得到符合预期的DataFrame。
内容的提问来源于stack exchange,提问作者Levis Ogoro
相关产品推荐
相关产品推荐

