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

在Pandas DataFrame中基于部分空列生成新列并校验两列一致性

在Pandas中基于两列生成学院名称并校验ID一致性

一、生成college_name列

通过提取每行非空ID、转换格式来生成学院名称:

步骤1:构造示例数据

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'id1': ['ID01', np.nan, 'ID07', 'ID08'],
    'id2': ['ID01', 'ID03', np.nan, 'ID08']
})

步骤2:生成学院名称

# 提取每行非空的ID(id1非空则取id1,否则取id2)
df['college_name'] = df[['id1', 'id2']].bfill(axis=1)['id1']
# 提取ID中的数字并拼接成College+数字格式
df['college_name'] = 'College' + df['college_name'].str.extract(r'(\d+)')[0]

执行后得到的结果如下:

id1    id2 college_name
0  ID01  ID01     College1
1   NaN  ID03     College3
2  ID07   NaN     College7
3  ID08  ID08     College8

二、校验ID一致性

检查是否存在同一行中id1和id2均非空且取值不同的情况:

# 筛选出id1、id2均非空且取值不同的行
conflict_rows = df[(df['id1'].notna()) & (df['id2'].notna()) & (df['id1'] != df['id2'])]

if not conflict_rows.empty:
    print("存在冲突行:")
    print(conflict_rows)
else:
    print("无冲突行:所有非空的id1和id2取值一致")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 07:24:12