我使用以下for循环将列中的所有值转换为datetime格式,并使用errors='concurve'处理任何不符合datetime格式的值:
for x in datecols:
df[x] = pd.to_datetime(df[x],errors='coerce')
然而,为了尝试提前理解列表,我想转换它,但是我没有任何进展
我尝试了以下方法:
[x for x in datecols pd.to_datetime(df[x],errprs='coerce')]
但是它不起作用
谢谢
Tags:
我认为这里有更好更简单的第一个解决方案,比如列表理解
或使用^{} :
列表理解的解决方案是可能的-值由^{} 提取,由^{} 连接在一起,也可用于相同的列顺序(如有必要)^{} :
如果你真的想要一个
list
理解,你必须接受这样一个事实:你将得到一个list
,因此没有list
理解代码真正等同于你原来的循环不过,类似的代码可能如下所示:
但是看起来你可能想使用一种不同的方法,就像@jezrael answer中建议的那样
这里的问题是,列表理解将很难将列中的值重新分配给数据帧。在任何情况下,您都可以使用它重新创建数据帧,但列表理解本身无法做到这一点:
原始数据帧:
提议的解决办法:
输出:
相关问题 更多 >
编程相关推荐