Итак, у меня есть фреймворк pandas, и он выглядит так:
Это абзац [if-statement, for-loop]
Это второй абзац [for-loop, java]
Чтобы пояснить, левый столбец служит текстовыми данными, а правый столбец классифицирует, о чем эти текстовые данные.
Я хочу получить доступ к «java» только по второму абзацу. Как я могу получить доступ к списку в фрейме данных?






IIUC необходимо:
df = pd.DataFrame({'col1':['This is a paragraph','This is a second paragraph'],
'col2':[['if-statement', 'for-loop'],['for-loop','java']]})
df = df[df['col2'].apply(lambda x: 'java' in x)]
#alternative solution
#df = df[['java' in x for x in df['col2']]]
Или сравните sets:
df = df[df['col2'].apply(set) >= set(['java'])]
print (df)
col1 col2
1 This is a second paragraph [for-loop, java]
Хороший, каким он был раньше :) +1, хотя я добавил свой небольшой вклад и обучение, пожалуйста, исправьте, если что-то нужно.
@pygo - Спасибо. Все еще не уверен на 100%, что нужно OP, поэтому задайте его в комментарии под вопросом.
Как насчет использования map.
>>> df['col2'].map(str)[1]
"['for-loop', 'java']"
Можете ли вы добавить ожидаемый результат к вопросу?