I have a data in geodataframe as shown in the image.
It contains a column by name neighbourhood_list which contains the list of all the neighbourhood codes of a route. what i want is to create a nested list in which the end element of first pair should be the start element of next because I want to generate a OD directed network (for generating edges) and order also matters here.
to make it bit clear, here is some code.
Here is lets say one record from the dataframe on which i tried some bodge way to get the desired result
list= [15,30,9,7,8]
new_list=[]
for i in range(len(list)-1):
new_list.append(list[i])
new_list.append(list[i+1])
so the above code gives the combined list which i then broke into the pairs which i needed
chunks = [new_list[x:x+2] for x in range(0, len(new_list), 2)]
chunks
Actual data is [15,30,9,7,8] and desired output is [[15, 30], [30, 9], [9, 7], [7, 8]]
I just figured out the above code from the answer here Split a python list into other "sublists" i.e smaller lists
However now the real issue is how to apply it in pandas
so far i am trying to tweak around something mentioned here https://chrisalbon.com/python/data_wrangling/pandas_list_comprehension/
here is some incomplete code, i am not sure if it is correct but i thought if somehow i could get the len of list items from each row of the neighbourhood_list column then maybe i could accomplish
for row in df['neighbourhood_list']:
for i in range ??HOW TO GET range(len) of each row??
new.append(row[i])
new.append(row[i+1])
note: as a layman i dont know how the nested looping or lambda functions work or if there is any available pandas functions to perform this task. another thing i think is of something like this also mentioned on stackoverflow, but still how to get length of list of each row, even if i try to create a function first and then apply it to my column.
df[["YourColumns"]].apply(someFunction)
apologies ahead if the question need more clarification (i can give more details of the problem if needed)
Thanks so much.