【发布时间】:2014-07-15 14:23:11
【问题描述】:
我有一个 pandas 数据框,其中包含我要传递给 MSSQL 的几列数据。我的主键是一个文件名,它在 2014 年 3 月 27 日更改了格式。我在我的数据框中以编程方式创建这个文件名,但我需要考虑这两个版本(之前的一种格式,包括 3 月 27 日创建的文件,其他适用于 3 月 27 日之后的所有文件)。
如何遍历每一行并有条件地设置我的文件名列?我的数据框中有一个日期时间列,它具有正确的日期时间格式。我只是不知道如何与更改日期进行比较,然后有条件地创建 df[FileName]。
感谢@EdChum!
dateOfChange = datetime.date(2014, 03, 27)
df.loc[df['DateTime'] > dateOfChange, 'FileName'] = df.BAC.map(str) + '_' + df.Year.map("{:04}".format, str) + df.Month.map("{:02}".format, str) + df.Day.map("{:02}".format, str) + df.Hour.map("{:02}".format, str) + df.Minute.map("{:02}".format, str) + df.Second.map("{:02}".format, str) + "_" + df.NumberDialed.map(str)
df.loc[df['DateTime'] <= dateOfChange, 'FileName'] = df.BAC.map(str) + '_' + df.Year.map("{:04}".format, str) + df.Month.map("{:02}".format, str) + df.Day.map("{:02}".format, str) + df.Hour.map("{:02}".format, str) + df.Minute.map("{:02}".format, str) + df.Second.map("{:02}".format, str)
【问题讨论】:
-
你有没有返回
df.loc[df['DateTime'] <= dateOfChange]的行 -
错字...(我上面有文件名和文件名)
-
好的,我应该更新我的答案吗?
-
是的!我会将其标记为正确,再次感谢!
标签: python datetime pandas comparison