You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据字符匹配条件交换数据集id1与id2列的值?

实现id1和id2列按指定规则交换值

用Pandas可以轻松实现这个需求,核心是借助str.contains()筛选出需要交换的行,再对列值进行互换:

1. 导入依赖并构造数据集

import pandas as pd

# 构造你的数据集
data = {
    'id1': ['first10', 'second3', 'first2', 'first10', 'second8'],
    'id2': ['second5', 'first19', 'second7', 'second10', 'first22'],
    'val': [10, 14, 8, 1, 9]
}
df = pd.DataFrame(data)

2. 筛选并交换列值

# 生成掩码:筛选出id1不包含"first"的行
swap_mask = ~df['id1'].str.contains('first')

# 对符合条件的行,交换id1和id2的值
df.loc[swap_mask, ['id1', 'id2']] = df.loc[swap_mask, ['id2', 'id1']].values

3. 查看结果

执行上述代码后,输出的DataFrame即为你期望的格式:

id1       id2  val
0  first10  second5    10
1  first19  second3    14
2   first2  second7     8
3  first10  second10    1
4  first22  second8     9

逻辑说明

  • df['id1'].str.contains('first')逐行判断id1列是否包含"first",返回布尔值序列
  • 前缀~对布尔值取反,得到需要交换列值的行的掩码
  • 通过df.loc定位到这些行的id1和id2列,将其值替换为对应行的id2和id1值,完成交换

内容的提问来源于stack exchange,提问作者gh1222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 15:06:17