Py学习  »  Python

如何使用pandas/python从日期和字符串的混合列中删除时间戳?

royalewithcheese • 3 年前 • 646 次点击  

假设我有专栏 第一列 测向 这样地,

col1                 |
2018-01-30 00:00:00  |
Yes                  |
                     |
nan                  |
None                 |

我想要以下输出 没有时间戳,同时保持其余内容的完整性,

col1                 |
2018-01-30           |
Yes                  |
                     |
nan                  |
None                 |

我用了下面的代码行,

df['col2'] = pd.to_datetime(df['col1'], errors='coerce')

但似乎不能解决上述问题。

我得到以下输出,

col1      |            
2018-01-30|
NaT       |           
NaT       |              
NaT       |           
NaT       |          

我正在寻找一个pandas解决方案,但最理想的是寻找一个可以使用python重复使用的函数。非常感谢任何帮助!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/99348
 
646 次点击  
文章 [ 1 ]  |  最新文章 3 年前
jezrael
Reply   •   1 楼
jezrael    3 年前

一种方法是将日期时间转换为字符串替代项,然后将缺少的值替换为原始值:

df['col1'] = (pd.to_datetime(df['col1'], errors='coerce').dt.strftime('%Y-%m-%d')
                .fillna(df['col1']))

或将日期时间转换为python日期:

df['col1'] = pd.to_datetime(df['col1'], errors='coerce').dt.date.fillna(df['col1'])

print (df)
         col1
0  2018-01-30
1         Yes
2            
3         NaN
4        None