pd.drop работает вне функции, но не в ней - PullRequest
1 голос
/ 11 апреля 2019

Работа над созданием фрейма данных из корреляции двух отдельных.Все работает гладко, само по себе, и в Jupyter, где я проверяю это независимо.

Я просто добавил еще одно условие для удаления строки из моего кадра данных - если это дубликат "current_edge ['street_name']Эта строка работает в записной книжке Jupyter, когда я тестирую, но не когда я помещаю ее в функцию.

# current_edge is a dictionary of values, edge_az is a float
# edge is my dataframe

for row in edge.index:

    if abs(current_edge['edgeAzimuth_deg'] - edge_az) <= turn_angle:
        edge = edge.drop(row)

    # drop same street names
    if edge['street_name'][row] == current_edge['street_name']:
        edge = edge.drop(row)

Я бы ожидал, что она отбросит одну строку из моего текущего кадра данных, но вместо этого я получаюKeyError = 0 в строке условия кода - "if edge ['street_name'] ...."

Это, честно говоря, вне меня :-) Любые идеи, почему это будет работать вне функции, но не один разэто называется?

1 Ответ

0 голосов
/ 11 апреля 2019

Я подозреваю, что в строке = 0 это условие истинно

if abs(current_edge['edgeAzimuth_deg'] - edge_az) <= turn_angle:
        edge = edge.drop(row)

Итак, строка индекса # 0 была отброшена. 2-е условие if пыталось получить доступ к индексу № 0, поэтому оно дает KeyError

if edge['street_name'][row] == current_edge['street_name']:
        edge = edge.drop(row)

Вставьте print(edge.index) между этими 2 if, чтобы увидеть, существует ли индекс # 0, существующий после 1-го if

...