我有一个 CSV 文件,其中包含大约 30,000 行 24 列的数据。最后一列是地理列,看起来像这样:
Ethiopia
IL
IL
TX
TX
MD
NY
NY
Ethiopia
Ethiopia
Sweden
CA
CA
HI
Latvia
OH
现在我只希望包含所有行的整个 CSV 与美国的地理位置相对应,这将是 2 个字符的州缩写(CA、HI、OH 等)
基本上,我希望 CSV 中的所有数据都删除任何与美国无关的数据,或者如果可能的话,甚至更好地按美国的位置排列前 X 行,其余的按 CSV 末尾的所有其他数据排列。
到目前为止,这是我的代码:
import csv
ask = "Y"
while ask != "N":
inputfile = input("Please enter filename: ")
filename = open(inputfile, "r")
data = []
with filename as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
if len(row[24]) == 3:
data = row[24]
datalist = row[0:23].join(data)
output = open("Newly Created Data.csv","w")
output.write(datalist)
print ("Done.")
output.close()
ask = input("Another file, Y or N? ")
它仅通过读取美国位置来正确排列第 24 列中的数据,但我不知道如何对文件的其余部分和其他 23 列进行排序以仅与美国位置匹配。
我正在使用 Python 3,谢谢。