0

我对 python 很陌生,并收到了一个有趣的请求。我有一个结果集,其结构如此,但规模更大,包括多个不同的账户。没有的

acct no.   date         Event
11111111   2012/01/01   1
11111111   2012/01/05   1

我将附加一个辅助日期对象,它将结果集转换为此输出:

acct no.   date         Event
11111111   2012/01/01   1
11111111   2012/01/02   0
11111111   2012/01/03   0
11111111   2012/01/04   0
11111111   2012/01/05   1
11111111   2012/01/06   0

继承人的请求:

我被要求构建一个脚本来测量两个日期之间的距离,计算差异,以天数为单位,并在它落在那个距离内时生成一个标志。棘手的部分是当有一个新记录集时,我需要将第一个记录集的结果附加到下一个记录集并继续计算和生成标志。

最终输出应如下所示:

acct no.   date         Event  Recent
11111111   2012/01/01   1      Y
11111111   2012/01/02   0      Y
11111111   2012/01/03   0      N
11111111   2012/01/04   0      N
11111111   2012/01/05   1      Y
11111111   2012/01/06   0      Y

我在 python 中还比较陌生,想不出从哪里开始。

非常感谢任何帮助。

谢谢,

4

1 回答 1

0

从您的问题来看,听起来您能够计算日期差异并且只是无法将“最近”标志附加到文件中的每一行。假设您正在从文本文件中读取帐户信息,这里有一些东西可以帮助您入门。如果您的信息在一个名为的文件中accounts.txt

import shutil

recentFlag = 'Y' # Example only. It sounds like you have your own way of determining this
filename = 'accounts.txt'

shutil.copy(filename, filename+'~') # Save a backup copy of the file you're editing.
                                    # We will read from this file and write to the original


fIn = open(filename+'~', 'r')
fOut = open(filename, 'w')


header = fIn.readline() # Read the first (header) line from your file, and write it to the output file. If the real file has multiple header lines, loop this
fOut.write(header + '\tRecent')

for line in fIn:
  fOut.write(line + '\t' + recentFlag + '\n')
  fOut.flush()

fIn.close()
fOut.close()

快乐编码!

于 2013-09-12T00:25:07.100 回答