Как выбрать значения из CSV-файла в зависимости от значения указанного столбца c - PullRequest
1 голос
/ 30 мая 2020

Возьмите этот CSV в качестве примера:

Col1, Col2
1,3,
0,5,
1,4
0,7

Скажите, что у меня есть список, и я хочу добавить значения Col2 в список, только если значение Col1 в такая же строка 1. В результате должен получиться список [3,4].

Как я могу сделать это с помощью pandas без использования iterrows()?

Ответы [ 3 ]

1 голос
/ 30 мая 2020
  1. Я думаю, что .loc - это самый pythoni c и самый простой метод.

    df.loc[df['Col1'] == '1']['Col2'].to_list()
    
  2. Альтернатива с использованием np.where:

    import numpy as np
    df['Col3'] = np.where(df['Col1'] == 1, df['Col2'], '')
    listt = list(filter(None,df['Col3'].to_list()))
    
  3. zip - это al oop альтернатива iterrows.

    listt = []
    for x, y in zip(df['Col1'], df['Col2']):
        if x == 1:
            listt.append(y)
    
0 голосов
/ 01 июня 2020
import pandas as pd

lst_result=[]
for ind, row in df.iterrows():
    if df.at[ind,'Col1'] == 1:
        lst_result.append(df.at(ind,['Col2']))
print(lst_result)
0 голосов
/ 30 мая 2020

Предполагая, что вы прочитали в своем csv фрейм данных с именем df, вы можете использовать это:

wanted = df.query('Col1 == 1')['Col2'].values
mylist.extend(wanted)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...