相應的數據我得到了一個有趣的問題:遍歷一個CSV文件的行找到另一
file1.csv有一個像幾百行:
Code,DTime
1,2010-12-26 17:01
2,2010-12-26 17:07
2,2010-12-26 17:15
file2.csv擁有1100萬行這樣的:
id,D,Sym,DateTime,Bid,Ask
1375022797,D,USD,2010-12-26 17:00:15,1.311400,1.311700
1375022965,D,USD,2010-12-26 17:00:56,1.311200,1.311500
1375022984,D,USD,2010-12-26 17:00:56,1.311300,1.311600
1375023013,D,USD,2010-12-26 17:01:01,1.311200,1.311500
1375023039,D,USD,2010-12-26 17:01:02,1.311100,1.311400
1375023055,D,USD,2010-12-26 17:01:03,1.311200,1.311500
1375023063,D,USD,2010-12-26 17:01:03,1.311300,1.311600
我想要做的是寫一個腳本,需要每個DTIME值file1.csv,發現在file2.csv的DateTime列部分匹配的第一個實例,以及輸出Dat eTime,Bid,Ask for the row。部分匹配是前16個字符。
這兩個文件都是從最舊到最新排序的,所以如果file1.csv中的「2010-12-26 17:01」匹配了file2.csv中的4個條目,我只需要提取第一個文件:「2010-12 -26 17:01:01「
不確定如何繼續..我試過一本字典,但值的順序很重要,所以我不確定這是否可行。也許把file1的DTime列放入一個列表中,並且爲該列表中的每個條目搜索file2中的DateTime?
謝謝你們
這個問題是不太有趣,如果你把它扔進一個數據庫,並做一個加入;) – YXD 2012-03-05 09:34:28
我試圖訪問和MySQL的數據庫方法,但遇到了試圖離開加入兩個表的問題。運行速度很快的唯一sql查詢是SELECT TOP 1 DateTime,Bid,Ask FROM tblTicks WHERE(DateTime)LIKE'2010-12-26 17:01 *';當我試圖用第一個表進行任何迭代時,它會凍結..儘管python可以更好地處理它.. – user1249464 2012-03-05 09:57:18
使用通配符執行字符串搜索肯定會很慢。 Id建議數據庫方法,以便您有足夠的時間和資源進行正確遷移。選擇索引時請考慮這些緩慢的查詢。 – Droogans 2012-03-06 13:15:46