[英]Only Plotting Strings with a Frequency Greater Than 2
在下面的代碼中,我希望 pd.plot() 忽略所有發生 1 次的情況。 即,僅 plot 列表中不止一次的字符串。 我將如何 go 這樣做?
這是一些示例代碼。
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”各出現一次。 如何在繪圖之前從 plot 中刪除這些數據點,即不只使用xlim = [2,4]
。 我正在嘗試對我的財務數據使用類似的東西。 我正在閱讀一個包含大量行的 csv 文件,所以我想在繪制之前刪除字符串的所有單個實例。 如果我需要澄清,請告訴我。
使用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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.