我有179 GB以下數據稀疏:使用CSV DictReader根據經緯度遠距離行和過濾器來讀取
id lat long var1 var2 var3
1 52.1 0.07 A
2 58.3 5.78 C
3 46.5 -8.32 E
我想在數據讀取和過濾,只讓部分之間的行緯度長座標保持不變。在這種reprex緯度的例子範圍是51.0至59.0,經度範圍爲-1.0至6.0
所有我至今是一個CSV字典閱讀器和不工作的字典理解:
with open("test_data.csv", 'r', encoding="Latin-1") as f:
reader = csv.DictReader(f)
rows = [row for row in reader if row['lat'] >= 51.0 if row['lat'] <= 59.0 if row['long'] >= -1.0 if row['long'] <= 6.0]
print(rows)
目前我得到一個TypeError:Unorderedable types:str()> = int()這可能是因爲DictReader以字符串形式引入事物,並且它們需要是整數值。我不確定如何將int()插入字典理解中。
最後,我想輸出選擇以下數據:
id lat long var1 var2 var3
1 52.1 0.07 A
2 58.3 5.78 C
我是矛盾的關於字典的格式,因爲我想在以後的數據寫回爲CSV。
當你說它「不工作」時,你是什麼意思? – asongtoruin
我認爲這是因爲我需要將lat longs轉換爲整數,就像DictReader以字符串形式輸入它們一樣。 –
我不是說_why_不是工作,我的意思是_how_不工作。你有錯誤嗎?輸出是否不正確?發生了什麼讓你認爲它「不起作用」? – asongtoruin