Только строки с частотой больше 2 - PullRequest
1 голос
/ 10 ноября 2019

В следующем коде я хочу, чтобы pd.plot () игнорировал все случаи, которые происходят 1 раз. т.е. только строите строки, которые в списке более одного раза. Как мне это сделать?

Вот пример кода.

import pandas as pd
import matplotlib.pyplot as plt

x = ['a', 'a', 'b', 'c', 'c', 'c', 'c', 'd', 'e', 'e', 'a', 'e', 'e']
pd.Series(x).value_counts().plot('barh')
plt.show()

Другими словами, «b» и «d» встречаются по одному разу каждый. Как удалить эти точки данных из графика перед построением , т. Е. Без использования xlim = [2,4]. Я пытаюсь использовать нечто подобное с моими финансовыми данными. Я читаю CSV-файл с кучей строк, поэтому я хотел бы удалить все отдельные экземпляры строки перед ее построением. Пожалуйста, дайте мне знать, если мне нужно уточнить. enter image description here

1 Ответ

3 голосов
/ 10 ноября 2019

Используйте boolean indexing:

s = pd.Series(x).value_counts()
s[s > 1].plot('barh')

или выбор по номеру , если хотите решение одной строкой:

pd.Series(x).value_counts().loc[lambda x: x > 1].plot('barh')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...