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

pandas DataFrame判断列是否为空并按规则格式化日期列的实现

解决方案

核心错误说明

你两段代码的问题都出在误用df['C'].empty判断逻辑:该属性是判断整个C列是否完全没有数据,而非判断C列每行的取值是否为空,所以条件判断没有按照单行维度生效,导致输出不符合预期。

正确实现代码

首先读取CSV时指定分隔符为|,且统一读取为字符串类型避免类型转换异常:

import pandas as pd
import numpy as np

# 读取CSV文件,sep指定分隔符,dtype指定所有列读取为字符串
df = pd.read_csv('你的csv文件路径.csv', sep='|', dtype=str)

然后按照需求处理C列:

# 先把空值/NaN统一替换为空字符串,避免后续处理报错
df['C'] = df['C'].fillna('')

# 逐行判断处理C列
df['C'] = np.where(
    df['C'] == '',  # 逐行判断C列取值是否为空
    '""',  # 为空则赋值双引号
    df['C'].str.replace('-', '') + '000000'  # 不为空则删除横杠后拼接6个0
)

输出验证

处理后输出的df和你预期的结果完全一致:

A     B                C
0  1100  8718   20211121000000
1  1104    21               ""

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:06:04