uniquenameclass
日付ごとにグループ化できるようにする必要があるデータセットがいくつかあります。以下の例のデータでは などを使用UniqueNameClass1
してUniqueNameClass3
いますが、実際にはテキスト文字列のみになります。したがって、私ができる必要があるのは、csv を循環して、すべて同じ日付のグループを選択してから、この日付グループ内でUniqueNameClass
. これを理解するのが難しい場合は、うまくいけば、この例が私が抱えている問題に光を当てるでしょう:
生データ
text,text,text,11/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass2,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass3,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass2,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass3,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass3,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass2,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass3,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass2,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass2,text,text
日付でソートされ、UniqueNameClass でグループ化されたデータ
text,text,text,11/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass2,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass2,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass3,text,text
text,text,text,11/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass3,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass3,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,12/03/12,text,text,text,UniqueNameClass5,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass1,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass2,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass2,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass2,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass3,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass4,text,text
text,text,text,13/03/12,text,text,text,UniqueNameClass5,text,text
したがって、同じ日付のデータのみを でグループ化できますUniqueNameClass
。この例では、実際にはグループを時系列に配置しましたが、グループの順序は問題ではありません。特定の日付の各グループの各行が互いに隣り合っているだけです。
編集
phihag から提供されたコードを実行しようとしましたが、かなりの方法で実行しましたが、試したすべての方法でトレースバックが得られました。
File "C:\RawDataeDataTest.py", line 6, in <module>
data = list(csv.reader(io.StringIO('RawDataeDataTest.csv')))
TypeError: initial_value must be unicode or None, not str
提供されたコードと提供されたコメントの両方に従って機能すると私が考えたコードは次のとおりです。
import csv
import io
data = list(csv.reader(io.StringIO('RawDataeDataTest.csv')))
data.sort(key=lambda row: (row[3], row[7]))
print(u'\n'.join(u','.join(row) for row in data))
と
import csv
import io
data = list(csv.reader('RawDataeDataTest.csv'))
data.sort(key=lambda row: (row[3], row[7]))
print(u'\n'.join(u','.join(row) for row in data))
後者の場合、実際には別のトレースバックが得られます。
Traceback (most recent call last):
File "C:\RawDataeDataTest.py", line 7, in <module>
data.sort(key=lambda row: (row[3], row[7]))
File "C:\RawDataeDataTest.py", line 7, in <lambda>
data.sort(key=lambda row: (row[3], row[7]))
IndexError: list index out of range