[英]if conditions with a python panda data frame and plot with matplotlib
只有當特定列的值達到某個值時,我才想使用某種 if 條件來繪制。
假設在下面的示例中,我只想在循環的值 == 2 時進行繪圖。
import pandas as pd
import matplotlib.pyplot as plt
data = [('cycle',[1,1,2,2,3,3,4,4]),
('A',[0.1,0.5,0.2,0.6,0.15,0.43,0.13,0.59]),
('B',[ 500, 600, 510,580,512,575,499,598]),
]
df = pd.DataFrame.from_items(data)
#print(df)
x = df['A']
y = df['B']
if df['cycle']==2:
plt.plot(x,y)
如果我嘗試這個,我會得到錯誤:ValueError: The truth value of a Series is ambiguous。 使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
直到現在,我還沒有找到解決問題的方法。
我很感謝您對此問題的任何幫助。 有一個非常美好的一天。
在這一行中, if df['cycle']==2
df['cycle']
返回一個 Pandas 系列。 當您將其與2
熊貓進行比較時,不知道您是要比較元素還是整個系列,這是模棱兩可的。 您可以做的是根據您的條件過濾表格,或過濾單個系列。 例如:
df = pd.DataFrame.from_items(data)
#print(df)
x = df.loc[df['cycle'] == 2, 'A']
y = df.loc[df['cycle'] == 2, 'B']
plt.plot(x,y)
在這里,您使用df['cycle']
作為布爾系列來索引原始數據框並僅返回那些cycle
等於2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.