Pandas如何拆分出text列重复且label列值变化的行到新DataFrame
实现步骤
核心逻辑是按text列分组后,判断每组内label列的唯一值数量,若数量大于1则该组所有行划入df1,剩余行划入df2。
1. 构造示例数据
import pandas as pd df = pd.DataFrame({ 'text': ['a', 'a', 'b', 'b', 'c', 'c', 'd'], 'label': ['country', 'sport', 'cooking', 'cooking', 'travel', 'design', 'tech'] })
2. 生成筛选掩码
# 对每个text分组,返回对应label的唯一值数量,大于1即为符合df1的筛选条件 mask = df.groupby('text')['label'].transform('nunique') > 1
3. 拆分DataFrame
df1 = df[mask].reset_index(drop=True) df2 = df[~mask].reset_index(drop=True)
输出验证
打印df1即可得到预期结果:
| text | label |
|---|---|
| a | country |
| a | sport |
| c | travel |
| c | design |
打印df2即可得到预期结果:
| text | label |
|---|---|
| b | cooking |
| b | cooking |
| d | tech |
内容的提问来源于stack exchange,提问作者jos97
相关产品推荐
相关产品推荐

