Использование фильтра и лямбды в списке списков - PullRequest
0 голосов
/ 30 марта 2020

Я работаю со списком списков. Каждый из этих списков одинаков - они содержат заголовок, URL и некоторую дополнительную статистику (всегда в том же порядке).


My list of lists

Я хотел бы создать функцию find_title, которая принимает требуемый заголовок и возвращает весь список (с заголовком, URL-адресом). и статистика). Это моя попытка

def find_title(title, ls):
    return(list(filter(lambda x: x[0] == title, ls)))

Однако это не работает, ничего не возвращает. Это, вероятно, потому что x[0] обозначает только первый элемент в большом списке. Как это можно исправить?

Правка. Это часть ls:

[['Der Vagabund und das Kind (1921)',
  'http://www.imdb.com/title/tt0012349/',
  0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
 ['Goldrausch (1925)',
  'http://www.imdb.com/title/tt0015864/',
  0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
 ['Metropolis (1927)',
  'http://www.imdb.com/title/tt0017136/',
  0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0]]

1 Ответ

0 голосов
/ 30 марта 2020

Вы можете напрямую извлекать информацию из фрейма данных следующим образом:

import pandas as pd
df = pd.DataFrame([['Der Vagabund und das Kind (1921)',
  'http://www.imdb.com/title/tt0012349/',
  0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
 ['Goldrausch (1925)',
  'http://www.imdb.com/title/tt0015864/',
  0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
 ['Metropolis (1927)',
  'http://www.imdb.com/title/tt0017136/',
  0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0]])

print(df[df[0] =='Goldrausch (1925)'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...