Запись в фрейм данных через цикл - PullRequest
1 голос
/ 10 апреля 2020

У меня есть фрейм данных с двумя столбцами, один из которых называется 'name', это строка, а другой называется 'route', это полилиния Google. Я использую библиотеку ломаных линий для декодирования ломаной линии в широту / долготу. Я хочу l oop по каждой строке для декодирования, но кажется, что она декодирует только первую строку и записывает ее в оставшуюся часть созданного столбца. Это то, что у меня есть.

df = pd.DataFrame(activities)

for row in df.itertuples(index=False):

    name = row[0]
    route = row[1]

    try:
        decoded = polyline.decode(route.replace('\\\\','\\'), geojson=True)
        df['decode'] = df.apply(lambda route: [decoded], axis=1)
    except:
        print(name)

1 Ответ

1 голос
/ 10 апреля 2020

Используйте DataFrame.apply с функцией:

df = pd.DataFrame(activities)

def decoder(name, route):
    try:
        return polyline.decode(route.replace('\\\\','\\'), geojson=True)
    except:
        print (name)
        return np.nan

 df['decode'] = df.apply(lambda x: decoder(x[0], x[1]), axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...