Прокрутите каждую строку и напишите ID, если он существует в списке - pandas - PullRequest
0 голосов
/ 07 мая 2018

Я хотел бы создать новый столбец с именем 'LT', который содержит значение из ID, если этот идентификатор присутствует в списке lt:

датафрейм преобразован в список:

ltlist = [1, 2, 3, 4, 5]

Это фрейм данных:

org = Dataframe({ID: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
for i, row in org.iterrows():
    blank = 0
    lt_val = org.at[i,'ID']
    if lt_val in ltlist:
        lt_val = org.ID
    org.at[i,'LT',] = lt_val
    else:
        blank

Ответы [ 2 ]

0 голосов
/ 07 мая 2018
import numpy as np
import pandas as pd 

ltlist = [1, 2, 3, 4, 5]

org = pd.DataFrame({'ID': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})

LT_val = []
for i, elements in org.items():
     for element in elements:
        if element in ltlist:
             LT_val.append(element)

        else:
             LT_val.append('NaN')

org['LT'] = LT_val
print(org)

Мы можем запустить цикл for, который будет перебирать каждый столбец и значение в столбце. Поскольку у вас есть только один столбец, он будет перебирать столбец id и элементы в этом столбце. Я использую метод .items (), чтобы получить каждый элемент. Если элемент находится в ltlist, мы можем добавить его в пустой список с именем LT_val. Если элемент отсутствует в списке ltlist, мы можем добавить к LT_val значение nan, используя функцию numpy np.nan. В конце мы создадим новый столбец в кадре данных с именем «LT», в котором будут храниться все идентификаторы, которые есть в исходном списке, и мы создадим значение NaN для каждого идентификатора, которого нет в исходном списке.

   ID   LT
0   1    1
1   2    2
2   3    3
3   4    4
4   5    5
5   6  NaN
6   7  NaN
7   8  NaN
8   9  NaN
9  10  NaN
0 голосов
/ 07 мая 2018

Вы можете реализовать if / else векторизованным способом, используя numpy.where:

import pandas as pd, numpy as np

ltlist = [1, 2, 3, 4, 5]
org = pd.DataFrame({'ID': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})

ltlist_set = set(ltlist)
org['LT'] = np.where(org['ID'].isin(ltlist_set), org['ID'], 0)

Мы используем set для эффективности поиска O (1).

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