#python #pandas #matplotlib
Вопрос:
Я использую Matplotlib и Pandas для построения данных.
Однако я хочу показать на графике только данные, которые превышают определенное значение.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
# Importing the data using Pandas
BE = pd.read_csv("BE-4YRS.csv")
FR = pd.read_csv("FR-4YRS.csv")
fig, ax = plt.subplots()
ax.scatter(BE["Week"], BE["percent"], alpha=0.7, c="r", s=BE["percent"]*2, label="Belgium")
ax.scatter(FR["Week"], FR["percent"], alpha=0.7, c="b", s=FR["percent"]*2, label="France")
ax.xaxis.set_major_locator(mdates.WeekdayLocator(interval=1))
plt.legend()
plt.xticks(rotation=45)
plt.grid(True)
Я пытался с :
for i in BE["percent"]:
if i > 75:
print(i)
выход :
78
100
78
76
77
87
Но мне не удается получить соответствующую дату для этих значений
Комментарии:
1. Измените
for i in BE_CFT_18to21["percent"]:
наfor i in range(len(BE_CFT_18to21["percent"])):
, и условие if также должно быть переписано наif BE_CFT_18to21["percent"][i] > 75:
, затем вместо печати вызовитеax.scatter(BE["Week"][i], BE_CFT_18to21["percent"][i])
2. Большое вам спасибо, это работает
Ответ №1:
Вы можете сделать это с помощью:
BE_CFT_18to21 = BE_CFT_18to21[BE_CFT_18to21.percent > 75]
Комментарии:
1. Основываясь на синтаксисе вопроса in OP, я бы подумал, что это будет
BE_CFT_18to21["percent"][BE_CFT_18to21["percent"] > 75]
2. Это также работает : BE_ABOVE_75 = BE_CFT_18to21[BE_CFT_18to21[«процент»] > 75] печать(BE_ABOVE_75[«процент»]) >> дает мне процент, превышающий 75 печать(BE_ABOVE_75[«неделя»]) >>> дает мне даты
3. @Адиль конечно. Вы можете использовать либо
BE_CFT_18to21["percent"]
илиBE_CFT_18to21.percent