перебирая столбец dataframe, чтобы увидеть, есть ли значение отдельной ячейки в списке путей к файлам - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть список путей к шейп-файлу (sf_list), и я использую вложенный цикл for для итерации по списку и фрейму данных (df), чтобы увидеть, есть ли значение в строке столбца (имени) этого фрейма данныхнаходится в этом пути, и если это так, добавьте это значение списка в эту строку кадра данных в новом столбце кадра данных (sf_path).Вот что у меня сейчас:

for sf in sf_list:
    for row in df.iterrows():
        df.loc[df['name'].isin(sf),'sf_path'] = [sf]

Сценарий выполняется, но новый столбец пуст.Список заполнен всеми необходимыми мне путями, и столбец этого фрейма данных содержит определенный текст, который находится в пути, по которому я пошел, чтобы заполнить этот ряд нового столбца.Любое направление приветствуется.


ОБНОВЛЕНИЕ:

Хорошо, теперь у меня есть:

for sf in sf_list:  
    for row in dlrules_df.iterrows():  
        dlrules_df.loc[dlrules_df['dl_foldername'] in sf, 'sf_path'] = sf

Ошибка вернулась:

TypeError: 'in <string>' requires string as left operand, not Series

1 Ответ

0 голосов
/ 26 февраля 2019

Можете попробовать?apply не рекомендуется, но для меня это стало привычкой.Хотел бы потратить больше времени, чтобы дать вам более эффективное решение, но здесь уже пора спать, и это выскочило у меня из головы.

sf = [list_of_folder_paths]
dlrules_df.loc[:, 'dl_foldername'].apply(lambda x: sf[sf.index(x)] if x in sf else None)

PS: Не проверено, поэтомуэто может где-то сломаться, но я надеюсь, что это даст вам некоторое представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...