日付のグループを識別し、グループのサイズを測定する関数を作成しようとしています。日付比較/連続日付グループ
この関数は、日付順にソートされた要素のリスト(要素は日付が入ったCSVファイルの個々の行です)を取得します。リストは、0からn要素の長さであってもよい。私は、日付グループのサイズを加えて、入力されたリストを書きたいと思う。
例えば、リスト
Bill 01/01/2011
Bill 02/01/2011
Bill 03/01/2011
Bill 05/01/2011
Bill 07/01/2011
は
Bill 01/01/2011 3
Bill 02/01/2011 3
Bill 03/01/2011 3
Bill 05/01/2011 1
Bill 07/01/2011 1.
としてIは、2つの間のデルタを返し既にisBeside(string1, string2)
と呼ばれる機能を有している(理想的には、ファイルへの印刷)出力であるべきです。
私の試みはこれまでのところ、これは
注coll[i][1]
はCSVラインの日付要素が含まれています(反復の混乱は、イム必ずPythonはこれよりもエレガントすることができます)です。
def printSet(coll):
setSize = len(coll)
if setSize == 0:
#dont need to do anything
elif setSize == 1:
for i in coll:
print i, 1
elif setSize > 1:
printBuffer = [] ##new buffer list which will hold sequential dates,
until a non-sequential one is found
printBuffer.append(coll[0]) #add the first item
print 'Adding ' + str(coll[0])
for i in range(0, len(coll)-1):
print 'Comparing ', coll[i][1], coll[i+1][1], isBeside(coll[i][1], coll[i+1][1])
if isBeside(coll[i][1], coll[i+1][1]) == 1:
printBuffer.append(coll[i+1])
print 'Adding ' + str(coll[i+1])
else:
for j in printBuffer:
print j, len(printBuffer)
printBuffer = []
printBuffer.append(coll[i])
return
これはデータベースが非常に優れているものです。代わりにデータベースの使用を検討しましたか? – gfortune
うん。私の問題は、CSVファイルに多くの人や他の変数があることです。手続き的に私のための道に見えました。最終的に週末/就業日をチェックする必要があるので、そうでなければ証明されるはずですが、DBは保留になるとは思いません。私はこの方法で私が近づいてきたように感じ、それを捨てたくない:) – Pythonn00b
日付は月/日/年の形式か、日/月/年ですか? –