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

如何将DataFrame中start列的None值替换为同行end列的值?

解决Pandas中替换start列空值为对应end列值的问题

你的代码无效主要有两个原因:

  • 空值判断错误:DataFrame里的None是Python空值(对应Pandas的NaN/pd.NA),不是字符串"None",所以df["start"]=="None"匹配不到目标行。
  • 链式赋值问题:df[...]["start"]=这种写法修改的是原DataFrame的副本,而非原数据本身,所以原DataFrame不会变化。

以下是两种简单有效的实现方法:

方法一:使用fillna(最简洁)

df['start'] = df['start'].fillna(df['end'])

fillna会自动将start列的所有空值替换为对应行end列的值,直接赋值回原列即可修改原DataFrame。

方法二:使用loc直接修改原数据

df.loc[df['start'].isna(), 'start'] = df['end']

用isna()准确识别空值行,通过loc直接定位原DataFrame的目标行列进行赋值,避免副本问题。

执行任意一种方法后,你就能得到期望的结果:

myid  user    start                     end
a     tom     2023-01-01T23:41:32       2023-01-02T23:41:32
b     dick    2023-01-05T20:41:32       2023-01-05T20:41:32
c     harry   2023-01-01T23:41:32       2023-01-03T21:41:32
d     sally   2023-01-05T03:41:32       2023-01-05T03:41:32

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:33:22