In [1]:
import csv

open the pipe-delimited text file, select the rows with FEATURE_CLASS "Falls" and append FEATURE_NAME, STATE_ALPHA, and COUNTY_NAME to the variable gnisList, then print it

In [2]:
gnisList = []
with open("C:/Users/zina/Documents/school/GIS_GEO409/GIS_work/Data/NationalFile_20181001.txt", encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile,delimiter="|")
    for row in reader:
        if row[2] == "Falls":
            gnisList.append(row[1])
            gnisList.append(row[3])
            gnisList.append(row[5])
# this is a very long list, may not want to print it
# print(gnisList)

open the pipe-delimited file, and read into the variable fallList those rows with FEATURE_CLASS "Falls" and STATE_ALPHA "KY", then print it

In [3]:
#import csv
fallList = []
with open("C:/Users/zina/Documents/school/GIS_GEO409/GIS_work/Data/NationalFile_20181001.txt", encoding='utf-8') as csvfile:
     reader = csv.reader(csvfile,delimiter="|")
     for row in reader:
         if row[2] == "Falls" and row[3] == "KY":
             fallList.append(row[1])
             fallList.append(row[-4])

print(fallList)
['Caney Falls', '728', 'Falls of the Ohio', '381', 'Jock Falls', '850', 'Lick Falls', '702', 'Seventy Six Falls', '745', 'Stacy Falls', '984', 'Amos Falls', '1079', 'Anglin Falls', '1529', 'Cumberland Falls', '807', 'Eagle Falls', '833', 'Broken Leg Falls', '1053', 'Dog Slaughter Falls', '853', 'Little Mudlick Falls', '', 'Little Mudlick Falls', '', 'Wrigley Falls', '', 'Rock Bridge Falls', '902', 'Falls of Buffalo', '1145', 'Bells Falls', '', 'Falls of McCammon', '', 'Drennon Falls', '561', 'The Big Falls', '499', 'Irvine Fall', '469']
In [7]:
# import csv
# fall2List = []
# with open("C:/Users/zina/Documents/school/GIS_GEO409/GIS_work/Data/NationalFile_20181001.txt", encoding='utf-8', mode=w) as fallsfile:
#      fallswriter = csv.writer(fallsfile,delimiter="|")
#      for row in reader:
#          if row[2] == "Falls" and row[3] == "KY":
#              fall2List.append(row)
# print(fall2List)
[['488850', 'Caney Falls', 'Falls', 'KY', '21', 'Lawrence', '127', '380944N', '0825038W', '38.1623073', '-82.8437749', '', '', '', '', '222', '728', 'Webbville', '09/20/1979', ''], ['491963', 'Falls of the Ohio', 'Falls', 'KY', '21', 'Jefferson', '111', '381617N', '0854552W', '38.2714592', '-85.7644073', '', '', '', '', '116', '381', 'New Albany', '09/20/1979', ''], ['495287', 'Jock Falls', 'Falls', 'KY', '21', 'Wayne', '231', '364850N', '0845307W', '36.8139596', '-84.8852249', '', '', '', '', '259', '850', 'Parnell', '09/20/1979', ''], ['496491', 'Lick Falls', 'Falls', 'KY', '21', 'Carter', '043', '381152N', '0830246W', '38.1978959', '-83.0461109', '', '', '', '', '214', '702', 'Bruin', '09/20/1979', '03/13/2018'], ['503189', 'Seventy Six Falls', 'Falls', 'KY', '21', 'Clinton', '053', '364648N', '0850735W', '36.7800661', '-85.1263444', '', '', '', '', '227', '745', 'Wolf Creek Dam', '09/20/1979', ''], ['507320', 'Stacy Falls', 'Falls', 'KY', '21', 'Casey', '045', '372450N', '0850207W', '37.4139605', '-85.0352351', '', '', '', '', '300', '984', 'Bradfordsville NE', '01/01/2000', ''], ['510259', 'Amos Falls', 'Falls', 'KY', '21', 'Whitley', '235', '364926N', '0841533W', '36.8239719', '-84.2591028', '', '', '', '', '329', '1079', 'Cumberland Falls', '09/20/1979', ''], ['510277', 'Anglin Falls', 'Falls', 'KY', '21', 'Rockcastle', '203', '372959N', '0841302W', '37.4998068', '-84.2171549', '', '', '', '', '466', '1529', 'Johnetta', '09/20/1979', ''], ['511676', 'Cumberland Falls', 'Falls', 'KY', '21', 'McCreary', '147', '365019N', '0842042W', '36.83873', '-84.34503', '', '', '', '', '246', '807', 'Cumberland Falls', '09/20/1979', '01/12/2012'], ['511978', 'Eagle Falls', 'Falls', 'KY', '21', 'McCreary', '147', '365034N', '0842039W', '36.8428592', '-84.3441037', '', '', '', '', '254', '833', 'Cumberland Falls', '09/20/1979', ''], ['516727', 'Broken Leg Falls', 'Falls', 'KY', '21', 'Menifee', '165', '375440N', '0832923W', '37.9111957', '-83.4896296', '', '', '', '', '321', '1053', 'Ezel', '11/01/1991', ''], ['516829', 'Dog Slaughter Falls', 'Falls', 'KY', '21', 'Whitley', '235', '365129N', '0841841W', '36.8581378', '-84.3113254', '', '', '', '', '260', '853', 'Cumberland Falls', '06/01/1992', ''], ['2092807', 'Little Mudlick Falls', 'Falls', 'KY', '21', 'Johnson', '115', 'Unknown', 'Unknown', '0', '0', '', '', '', '', '', '', 'Paintsville', '09/07/2006', ''], ['2092808', 'Little Mudlick Falls', 'Falls', 'KY', '21', 'Johnson', '115', 'Unknown', 'Unknown', '0', '0', '', '', '', '', '', '', 'Paintsville', '09/07/2006', ''], ['2124557', 'Wrigley Falls', 'Falls', 'KY', '21', 'Morgan', '175', 'Unknown', 'Unknown', '0', '0', '', '', '', '', '', '', 'Lenox', '07/16/2007', ''], ['2364826', 'Rock Bridge Falls', 'Falls', 'KY', '21', 'Wolfe', '237', '374610N', '0833342W', '37.7694595', '-83.5617454', '', '', '', '', '275', '902', 'Pomeroyton', '11/30/2007', '02/08/2018'], ['2416573', 'Falls of Buffalo', 'Falls', 'KY', '21', 'Owsley', '189', '372100N', '0833248W', '37.3500501', '-83.5466235', '', '', '', '', '349', '1145', 'Mistletoe', '03/25/2008', '07/05/2018'], ['2416630', 'Bells Falls', 'Falls', 'KY', '21', 'Menifee', '165', 'Unknown', 'Unknown', '0', '0', '', '', '', '', '', '', 'Scranton', '03/26/2008', ''], ['2504998', 'Falls of McCammon', 'Falls', 'KY', '21', 'Jackson', '109', 'Unknown', 'Unknown', '0', '0', '', '', '', '', '', '', 'McKee', '10/22/2008', ''], ['2568588', 'Drennon Falls', 'Falls', 'KY', '21', 'Henry', '103', '382620N', '0850637W', '38.438928', '-85.1103475', '', '', '', '', '171', '561', 'Franklinton', '08/24/2009', '05/05/2015'], ['2742597', 'The Big Falls', 'Falls', 'KY', '21', 'Meade', '163', '375359N', '0860131W', '37.89975', '-86.02522', '', '', '', '', '152', '499', 'Rock Haven', '11/19/2012', ''], ['2742848', 'Irvine Fall', 'Falls', 'KY', '21', 'Allen', '003', '365407N', '0860812W', '36.90207', '-86.1368', '', '', '', '', '143', '469', 'Meador', '11/29/2012', '']]

using pandas can format file so it is easier to read, using the DataFrame

In [8]:
import pandas as pd
import numpy as np
In [9]:
with open("C:/Users/zina/Documents/school/GIS_GEO409/GIS_work/Data/NationalFile_20181001.txt", encoding='utf-8') as csvfile:
    reader = pd.read_csv(csvfile,delimiter="|")
    pdData = pd.DataFrame(reader)

select rows in which FEATURE_CLASS is "Falls" and STATE_ALPHA is "KY" and only include the listed fields

In [10]:
#pdData[["FEATURE_NAME","FEATURE_CLASS", "ELEV_IN_FT"]].sort_values(by=["ELEV_IN_FT"])
pdData[(pdData["FEATURE_CLASS"] == "Falls") & (pdData["STATE_ALPHA"] == "KY")][["FEATURE_ID","FEATURE_NAME","FEATURE_CLASS","STATE_ALPHA","COUNTY_NAME","PRIMARY_LAT_DMS","PRIM_LONG_DMS","PRIM_LAT_DEC","PRIM_LONG_DEC","ELEV_IN_FT"]].sort_values(by=["ELEV_IN_FT"])
Out[10]:
FEATURE_ID FEATURE_NAME FEATURE_CLASS STATE_ALPHA COUNTY_NAME PRIMARY_LAT_DMS PRIM_LONG_DMS PRIM_LAT_DEC PRIM_LONG_DEC ELEV_IN_FT
441986 491963 Falls of the Ohio Falls KY Jefferson 381617N 0854552W 38.271459 -85.764407 381.0
2244250 2742848 Irvine Fall Falls KY Allen 365407N 0860812W 36.902070 -86.136800 469.0
2244083 2742597 The Big Falls Falls KY Meade 375359N 0860131W 37.899750 -86.025220 499.0
2106878 2568588 Drennon Falls Falls KY Henry 382620N 0850637W 38.438928 -85.110348 561.0
446496 496491 Lick Falls Falls KY Carter 381152N 0830246W 38.197896 -83.046111 702.0
438896 488850 Caney Falls Falls KY Lawrence 380944N 0825038W 38.162307 -82.843775 728.0
453149 503189 Seventy Six Falls Falls KY Clinton 364648N 0850735W 36.780066 -85.126344 745.0
461565 511676 Cumberland Falls Falls KY McCreary 365019N 0842042W 36.838730 -84.345030 807.0
461864 511978 Eagle Falls Falls KY McCreary 365034N 0842039W 36.842859 -84.344104 833.0
445296 495287 Jock Falls Falls KY Wayne 364850N 0845307W 36.813960 -84.885225 850.0
466676 516829 Dog Slaughter Falls Falls KY Whitley 365129N 0841841W 36.858138 -84.311325 853.0
1979313 2364826 Rock Bridge Falls Falls KY Wolfe 374610N 0833342W 37.769459 -83.561745 902.0
457247 507320 Stacy Falls Falls KY Casey 372450N 0850207W 37.413960 -85.035235 984.0
466588 516727 Broken Leg Falls Falls KY Menifee 375440N 0832923W 37.911196 -83.489630 1053.0
460155 510259 Amos Falls Falls KY Whitley 364926N 0841533W 36.823972 -84.259103 1079.0
2012838 2416573 Falls of Buffalo Falls KY Owsley 372100N 0833248W 37.350050 -83.546623 1145.0
460173 510277 Anglin Falls Falls KY Rockcastle 372959N 0841302W 37.499807 -84.217155 1529.0
1929020 2092807 Little Mudlick Falls Falls KY Johnson Unknown Unknown 0.000000 0.000000 NaN
1929021 2092808 Little Mudlick Falls Falls KY Johnson Unknown Unknown 0.000000 0.000000 NaN
1954094 2124557 Wrigley Falls Falls KY Morgan Unknown Unknown 0.000000 0.000000 NaN
2012874 2416630 Bells Falls Falls KY Menifee Unknown Unknown 0.000000 0.000000 NaN
2075294 2504998 Falls of McCammon Falls KY Jackson Unknown Unknown 0.000000 0.000000 NaN

Use the to_csv() pandas method to save to CSV

In [12]:
pdData[pdData["FEATURE_CLASS"] == "Falls"].to_csv("../Data/falls_us.csv")
In [11]:
pdData[(pdData["FEATURE_CLASS"] == "Falls") & (pdData["STATE_ALPHA"] == "KY")].to_csv("../Data/falls_ky.csv")