Выберите строки, если строка начинается с определенных символов в pandas - PullRequest
3 голосов
/ 27 января 2020

У меня есть CSV-файл, как показано ниже

enter image description here

Я пытаюсь найти любое слово, которое будет начинаться с буквы A и G или любой список, который я хочу

, но мой код возвращает ошибку. Любые идеи, что я делаю неправильно? это мой код

if len(sys.argv) == 1:
    print("please provide a CSV file to analys")
else:
    fileinput = sys.argv[1]

wdata = pd.read_csv(fileinput)


print( list(filter(startswith("a","g"), wdata)) )

Ответы [ 2 ]

3 голосов
/ 27 января 2020

Чтобы получить соответствующие строки, извлеките первую букву, затем используйте isin:

df
  words  frequency
0  what         10
1   and          8
2   how          8
3  good          5
4   yes          7

df[df['words'].str[0].isin(['a', 'g'])]
  words  frequency
1   and          8
3  good          5

Если вы хотите указать столбец c, используйте loc:

df.loc[df['words'].str[0].isin(['a', 'g']), 'words']
1     and
3    good
Name: words, dtype: object

df.loc[df['words'].str[0].isin(['a', 'g']), 'words'].tolist()
# ['and', 'good']
2 голосов
/ 27 января 2020

Использование Series.str.startswith с преобразованием списка в кортеж и фильтрацией по DataFrame.loc с boolean indexing:

wdata = pd.DataFrame({'words':['what','and','how','good','yes']})

L = ['a','g']
s = wdata.loc[wdata['words'].str.startswith(tuple(L)), 'words']
print (s)
1     and
3    good
Name: words, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...