DataFrame не покажет мне табличную форму, когда я повторяю цикл forloop

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

for word in "hello there".split():
       print( pd.DataFrame(tokens.loc[tokens['tokens'] == word]))

но он печатает что-то вроде этого:

     tokens  egypt    gulf  hijazi  maghribi
32877    hello  611.0  1322.0   507.0     463.0

это не табличная форма, которую печатает dataframe. просто обычная струна. Но когда я удаляю эту строку из цикла for, она печатается в виде таблицы.

Пожалуйста отметьте: Приведенный выше цикл for находится внутри другого цикла for, есть много таблиц, которые я хочу распечатать.

Некоторые проблемы, которые я обнаружил:

когда я использую печать, она дает мне эту простую табличную форму, но когда я ее удаляю, она показывает мне таблицу данных с серой фоновой формой. Проблема в том, что мне нужна отдельная ячейка (использующая jupyter), чтобы напечатать ее так. Но мне нужно сделать это внутри цикла for, потому что есть другие таблицы, которые мне нужно распечатать.

Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
1
0
231
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам нужно обновить его до нового df,

>>> new_tokens = pd.DataFrame(columns=tokens.columns)
>>> tokens
   tokens  egypt    gulf  hijazi  maghribi
0   hello  611.0  1322.0   507.0     463.0
1  helalo  611.0  1322.0   507.0     463.0 # For testing this line is added
>>> for word in "hello there".split():
       new_tokens = new_tokens.append(tokens.loc[tokens['tokens'] == word])


>>> new_tokens
  tokens  egypt    gulf  hijazi  maghribi
0  hello  611.0  1322.0   507.0     463.0

хорошо, я нашел проблему, когда я использую print (df), он печатает как обычный текст. Но когда я пишу только df, это дает мне табличную форму. Но как этого избежать? Я пробовал удалить отпечаток, и он ничего не показывает. Я имею в виду удаление его внутри цикла for. на самом деле цикл побольше, потому что есть другие строки, которые мне нужно напечатать

John Sall 22.05.2019 12:07

@JohnSall Тип данных df — DataFrame. Где вы хотите отобразить свой фрейм данных в виде таблицы? В какой среде вы печатаете? IDLE по умолчанию или Jupyter или что-то еще? print(df) не проблема. Вы можете типа df.

shaik moeed 22.05.2019 12:14

Я использую jupyter, но нет, когда я использую печать, он дает мне обычный текст. Мне нужно добавить еще одну ячейку и написать там только df, и она покажет мне табличную форму с серым фоном.

John Sall 22.05.2019 12:18

df здесь просто переменная

John Sall 22.05.2019 12:19
Ответ принят как подходящий

Я предполагаю, что токены - это фрейм данных со столбцами "токены" и "значения". Если вы хотите напечатать только те строки, в которых записи в столбце «значение» соответствуют определенным словам в строке, вам лучше использовать внутреннюю логику сопоставления pandas с помощью метода .isin.

Итак, если токены - это фрейм данных, такой как этот:

tokens=pd.DataFrame({'tokens':['egypt','gulf','hijazi','maghribi','hello'],'values':[32877,611.0, 1322.0, 507.0, 463.0]})

Вы можете просто написать:

print(tokens[tokens['tokens'].isin("hello there".split())])

Когда я использую печать, она дает мне строку, а не табличную форму. как этого избежать

John Sall 22.05.2019 12:08

если это просто проблема форматирования, просто попробуйте использовать display (dataframe), а не print (dataframe)?

HMReliable 22.05.2019 12:16

Другие вопросы по теме