python - 用另一列 Python Pandas 中的数据替换 NAT 日期

标签 python pandas

我在用其他列的数据替换 NAT 日期时遇到困难。顺便说一下,我正在使用 python pandas。

例如

       Column1            Column2
       02-12-2006         2006
       05-12-2005         2005
       NAT                2008
       15-02-2015         2015
       NAT                2001

我在第 1 列中有有效日期,在第 2 列中只有年份,我如何根据同一行使用第 2 列中的年份来估算 NAT 值。

我想要的结果是

       Column1            Column2
       02-12-2006         2006
       05-12-2005         2005
       2008               2008
       15-02-2015         2015
       2001               2001

最佳答案

df.Column1.combine_first(df.Column2)

0    2006-02-12 00:00:00
1    2005-05-12 00:00:00
2                   2008
3    2015-02-15 00:00:00
4                   2001
Name: Column1, dtype: object

更好的答案

df.Column1 = np.where(df.Column1.notnull(),
                      df.Column1.dt.strftime('%Y-%m-%d'),
                      df.Column2)

df

enter image description here

关于python - 用另一列 Python Pandas 中的数据替换 NAT 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39222157/

相关文章:

python - pandas to_json 忽略微秒

javascript - 二叉树在后端或前端的实现

java - 如何使用 Jython/PyDev 修复 Eclipse Kepler/Luna 中的 UnsupportedCharsetException?

python - Python 编译器是否有可能优化掉一些整数运算?

python - OpenCV像素颜色都一样

python - 在 pandas/python 中,读取存储为字符串的数组

python - 读取多个 CSV 文件并水平连接它们

pandas - 就地适用于满足条件的 Pandas 数据框列

python - pandas:在 groupby 时为每个子组添加总行(特别是对于非加法方法,例如 `nunique` )

python - 获取对象但无法访问属性