私はpython 2.7を使用して、それをMySQLデータベースにチャッキングする前にCSVファイルからいくつかのデータを消去しています。PythonのCSVでデータを比較する
各行は、タイムスタンプを持つユーザーエントリです。
データをdbに送信する前に、重複する行(同じユーザー名の2行)を確認してから、同じ行にあるタイマーを使用して、保持するものを確認します。私は2次元配列内の項目を比較すると混乱して取得しています考えて
# set up data container
data = []
# read csv file
with open(file, 'rU') as f:
# create file reader
reader = csv.reader(f)
# skip first row (headers)
next(reader)
# gather data in a table
for row in reader:
data.append(row)
...私は、ユーザ名がdata[][1]
であることを知っていると、タイマー(int)がdata[][52]
です。
私はこのような新しいリストを作成しようとしました:
usernames = []
cleaner_list = data
for row in data:
if row[1] is in usernames:
# dupe
else:
usernames.append(row[2])
しかし、私は、このような本などのデータを比較しようとすると、範囲外続ける:
if row[1] is in usernames:
if row[52] > usernames[row[2]][52]:
# delete row[52] from cleaner_data
else:
# delete the equivalent row in usernames from cleaner_data
私はと感じて、私はこれを考え直していますが、私はset
を使用することはできません。私は一意のユーザー名の列挙型リストを作成し、CSV列にフィルタをかけることを考えましたが、重複を見つけてその削除を行う前にタイマーを確認する必要がある場合は、行への正しい参照を維持する方法がわかりません。 本当にありがとうございます!