The way I always handle this kind of thing is by making the entire FC a layer before entering the "for" loop. Then once inside the loop I use SelectLayerByAttribute on the the row based on OBJECTID or some other unique identifier. The following code should do what you need with a few changes. You will need to make sure the paths are all correct for your file system.
Edit:
I have made a few changes that should hopefully make this easier to implement. You need to make sure you are working out of a GDB with true feature classes instead of using shape files. The where clause is structured for a gdb and won't work correctly on .shp files. You could do a little research on how to construct where clauses for shape files. Specifically the, AddFieldDelimeters tool would be helpful for this. I made one mistake in the original code in which I referenced a layer called 'Units'. This has been removed since obviously your project does not involve a layer with this name. That's what I get for copying and pasting code from my own projects :)
import arcpy
import os
arcpy.MakeFeatureLayer_management(r'Replace this sentence with the path to the Practice_Stops FC', 'Practice_Stops_lyr')
#You're original dataset
fc = r'Replace this senetence with the path to the Practice_Sales FC' #you should import this into an FGDB to make it a true FC instead of using a .shp
#Create a scratch data workspace
try:
arcpy.CreateFileGDB_management(r'Replace this sentence with a path to a location where you can store scratch data.', "ScratchFGD")
except:
pass
#Create an object that stores the location for the scratch data
scratchFGD = r'Replace this sentence with the full path to the scratch geodatabase created in the previous step, make sure to include .gdb at the end'
#Make a layer out of the the original FC
arcpy.MakeFeatureLayer_management(fc, 'Sales_lyr')
#Use an update cursor when there is a value you need to change in the attribute table
with arcpy.da.UpdateCursor('Sales_lyr', ["BOROUGH", "OBJECTID", "COUNT"]) as cursor:
#For every row in the cursor, do the following
for row in cursor:
#Select the current row in the UpdateCursor
arcpy.SelectLayerByAttribute_management('Sales_lyr', "NEW_SELECTION", "OBJECTID IN(" + str(row[1]) + ")")
arcpy.AddMessage("Selection by attributes complete")
print ("Selection by attributes complete")
#Copy the selection to a new temporary feature
arcpy.CopyFeatures_management('Sales_lyr', os.path.join(scratchFGD, "tempFeat"))
arcpy.AddMessage("Copy complete")
print ("Copy complete")
#Make the temp feature a layer
arcpy.MakeFeatureLayer_management(os.path.join(scratchFGD, "tempFeat"), "singleSalesRecord_lyr")
arcpy.AddMessage("Feature layer created")
print ("Feature layer created")
# Select all features in Practice_Stops within 1000 feet of the current row in Practice_Sales1
arcpy.SelectLayerByLocation_management('Practice_Stops_lyr', "WITHIN_A_DISTANCE", "singleSalesRecord_lyr", "1000 Feet", "NEW_SELECTION")
arcpy.AddMessage("Select by Location complete")
print ("Select by Location complete")
# Returns the # of selected features
practiceStopsCount = int(arcpy.GetCount_management('Practice_Stops_lyr').getOutput(0))
arcpy.AddMessage("# of features within 1000 feet = " + str(practiceStopsCount))
print ("# of features within 1000 feet = " + str(practiceStopsCount))
# Replace row value in COUNT field with
row[2] = practiceStopsCount
cursor.updateRow(row)
arcpy.AddMessage("Row Updated in Sales FC")
print ("Row Updated in Sales FC"")
#Clean up the temporary data
arcpy.Delete_management(os.path.join(scratchFGD, "tempFeat"))
arcpy.Delete_management('singleSalesRecord_lyr')
arcpy.AddMessage("Deleted temp data")
print ("Deleted temp data")
del row
del cursor