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

Pandas DataFrame处理含字符串与NaN的列,生成数值比较判断列

Pandas 数据处理解决方案

步骤说明

  • 将colA从字符串类型转为整数类型,为后续数值比较做准备
  • 清洗colB:识别并转换其中的有效整数,把字符串形式的NaN和普通文本标记为缺失值
  • 根据清洗后的colB与colA的比较结果生成colC

完整代码实现

import pandas as pd
import numpy as np

# 初始化原始数据
d = {'colA': ['1', '2', '3', '3', '3'], 'colB': ['NaN', '4', '2', 'this', 'that']}
mydata = pd.DataFrame(data=d)

# 1. 转换colA为整数类型
mydata['colA'] = mydata['colA'].astype(int)

# 2. 清洗colB,提取有效整数
def parse_colb(value):
    if value == 'NaN':
        return pd.NA
    try:
        return int(value)
    except ValueError:
        # 无法转换为整数的文本返回缺失值
        return pd.NA

mydata['colB_clean'] = mydata['colB'].apply(parse_colb)

# 3. 生成colC的判断结果
mydata['colC'] = np.where(
    mydata['colB_clean'].isna(),
    'NaN',
    np.where(mydata['colB_clean'] > mydata['colA'], 'Yes', 'No')
)

# 移除中间辅助列,得到最终结果
mydata = mydata.drop('colB_clean', axis=1)
print(mydata)

运行结果

colA   colB  colC
0     1    NaN   NaN
1     2      4   Yes
2     3      2    No
3     3   this   NaN
4     3   that   NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:31:19