如何基于d有条件地设置数据帧的值

2024-09-27 23:23:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据帧,其中有几列数据要传递给MSSQL。我的主键是一个在2014年3月27日改变了格式的文件名。我正在我的数据帧中以编程方式创建这个文件名,但我需要考虑两个版本(一个是3月27日之前的格式,包括3月27日创建的文件,另一个是3月27日之后的所有文件)。在

如何遍历每一行并有条件地设置filename列?我的dataframe中有一个datetime列,它具有正确的datetime格式。我只是不知道如何比较更改日期,然后有条件地创建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)

Tags: 文件数据formatmapdfdatetime文件名格式
1条回答
网友
1楼 · 发布于 2024-09-27 23:23:39

您不必迭代,只需过滤要分配给的行,并将其分配给所有行。这将更快地利用熊猫的力量:

df.loc[df['DateTime'] > dateOfChange, 'FileName'] = someVal
df.loc[df['DateTime'] <= dateOfChange, 'FileName'] = otherVal

我们在这里使用loc来执行标签索引,请参阅文档:http://pandas.pydata.org/pandas-docs/stable/indexing.html#selection-by-label

相关问题 更多 >

    热门问题