0
有2個CSV文件。每個文件有700,000行。Python - 如何提高數據幀性能?
我應該逐行讀取一個文件,並從另一個文件中找到同一行。
然後,將兩個文件數據作爲一個文件數據。
但是,每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_循環,你可能會做錯了,並且使用一些熊貓方法可能是更好的方法。當然,這有一些例外。 –