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

Pandas问题:将非Completed状态行的Date列置空时.loc报错

解决方法

你的错误出在连续赋值上:df = df.loc[df['Status'] != 'Completed', 'Date'] = '' 这个语句会先把符合条件的Date列值设为空字符串,然后把这个空字符串赋值给变量df,导致df从DataFrame变成了字符串,后续再调用.loc自然会报错。

正确的写法是直接使用.loc原地修改原DataFrame,不需要重新赋值给df:

import pandas as pd

df = pd.DataFrame({'Status': ['','To Do', '','Completed', 'To Do', 'In Progress', 'Completed'], 
'Date': ['','9/1/2022','','12/5/2019','8/12/2020','4/19/2020','12/31/2018']})

# 正确的赋值方式
df.loc[df['Status'] != 'Completed', 'Date'] = ''

print(df)

执行后输出的结果:

Status        Date
0                         
1        To Do             
2                         
3     Completed  12/5/2019
4        To Do             
5  In Progress             
6     Completed  12/31/2018

这样就完成了将Status列不为Completed的行的Date列置空的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:01:20