私はあなたの脳を最適化することを望んでいます。私はまだPythonについて学び、日々の分析アナリストのためにそれを使用しています。私が持っているタスクの1つは、約60kの一意のレコード識別子をソートし、相互作用の約120kレコードを持つ別のデータフレームを検索し、その相互作用を作成した従業員と発生した時間です。参考のために パンダ - 最も早い日付を見つけるための照合番号
、のようなこの時点ルックに2つのデータフレーム:(識別子ファイルケースとして知られている)の名前、ユニークな識別子ですが執筆main_data =一意識別子のみ nok_dataは=、上に作成し、テキストに注意してください。
私のセットアップでは、現在、およそ2500行/分でデータを並べ替えて照合するので、実行には約25-30分程度の時間がかかります。全体的な
- :私は好奇心はある私が実行されたすべてのステップがあります。以下は
私のコードです:
nok_data = pd.read_csv("raw nok data.csv") #Data set from warehouse
main_data = pd.read_csv("exampledata.csv") #Data set taken from iTx ids from referral view
row_count = 0
error_count = 0
print(nok_data.columns.values.tolist())
print(main_data.columns.values.tolist()) #Commented out, used to grab header titles if needed.
data_length = len(main_data) #used for counting how many records left.
earliest_nok = {}
nok_data["Created On"] = pd.to_datetime(nok_data["Created On"]) #convert all dates to datetime at beginning.
for row in main_data["iTx Case ID"]:
list_data = []
nok = nok_data["Case File Identifier"] == row
matching_dates = nok_data[["Created On", "Authored By Name"]][nok == True] #takes created on date only if nok shows row was true
if len(matching_dates) > 0:
try:
min_dates = matching_dates.min(axis=0)
earliest_nok[row] = [min_dates[0], min_dates[1]]
except ValueError:
error_count += 1
earliest_nok[row] = None
row_count += 1
print("{} out of {} records").format(row_count, data_length)
with open('finaloutput.csv','wb') as csv_file:
writer = csv.writer(csv_file)
for key, value in earliest_nok.items():
writer.writerow([key, value])
は、私が持ってはるかに長く、このようなものを実行するコードから何かアドバイスや専門知識を探しています。これを読む時間をとった皆さんに感謝します。ハッピー火曜日、
アンディ・M.
****データを表示するように要求EDIT 任意のデータ型を含めていないが、私の初心者の移動のため申し訳ありません。
main_data例
ITX Case ID
2017-023597
2017-023594
2017-023592
2017-023590
nok_data "生NOKのdata.csv" 別名
Authored By: Case File Identifier: Note Text: Authored on
John Doe 2017-023594 Random Text 4/1/2017 13:24:35
John Doe 2017-023594 Random Text 4/1/2017 13:11:20
Jane Doe 2017-023590 Random Text 4/3/2017 09:32:00
Jane Doe 2017-023590 Random Text 4/3/2017 07:43:23
Jane Doe 2017-023590 Random Text 4/3/2017 7:41:00
John Doe 2017-023592 Random Text 4/5/2017 23:32:35
John Doe 2017-023592 Random Text 4/6/2017 00:00:35
サンプルデータ[MCVE]を投稿する必要があります。最初の一見は、列による反復が非常に遅いということです。 – Alexander
'main_data'と' nok_data'にいくつかのダミーデータを提供できますか? –
こんにちは@Alexanderそれぞれの基本データをいくつか追加しました。 –