0
2つのCSVファイルがあります。各ファイルには70万行があります。Python - データフレームのパフォーマンスを向上させる方法
ファイルを1行ずつ読み込み、他のファイルと同じ行を見つける必要があります。
その後、2つのファイルデータを1つのファイルデータとして作成します。
しかし、1,000行ごとに約1分かかります!
パフォーマンスを向上させる方法がわかりません。ここで
は私のコードです:
ラインを変更することができますimport pandas as pd
fail_count = 0
match_count = 0
count = 0
file1_df = pd.read_csv("Data1.csv", sep='\t')
file2_df = pd.read_csv("Data2.csv", sep='\t')
columns = ['Name', 'Age', 'Value_file1', 'Value_file2']
result_df = pd.DataFrame(columns=columns)
for row in fil1_df.itterow():
name = row[1][2]
position = row[1][3]
selected = file2_df[(file2_df['Name'] == name) & (file2_df['Age'] == age)]
if selected.empty :
fail_count += 1
continue
value_file1 = row[1][4]
value_file2 = selected['Value'].values[0]
result_df.loc[len(result_df)] = [name, age, value_file1, value_file2]
match_count += 1
print('match : ' + str(match_count))
print('fail : ' + str(fail_count))
result_df.to_csv('result.csv', index=False, encoding='utf-8')
?
このプロセスを実行する他の方法はありますか?
OMG !!それは私が欲しいものです! あなたは時間と人生を救う;)ありがとう! – BingbongKim
@BingbongKim、一般的に言えば、パンダのデータフレームで_for_ループを使用している場合は、間違っている可能性があります。もちろんそれには例外があります。 –