大熊貓系列是什麼造成這種情況?熊貓matplotlib情節有奇怪的文物
plt.plot(df["Column"].as_matrix())
plt.plot(df["Column"])
df["Column"].plot()
其實也有類似的文物,但不太一樣的情節。
大熊貓系列是什麼造成這種情況?熊貓matplotlib情節有奇怪的文物
plt.plot(df["Column"].as_matrix())
plt.plot(df["Column"])
df["Column"].plot()
其實也有類似的文物,但不太一樣的情節。
比方說,你有以下數據框
x = [2,1,3,6,5,6,7]
y = [1,2,5,1,1,6,1]
df = pd.DataFrame({"y" : y }, index=x)
然後調用
plt.plot(df["y"].as_matrix())
相當於plt.plot(y)
其反對它自己的指數(從0開始,遞增1)繪製只有y
值。
相比之下,
plt.plot(df["y"])
等價於plt.plot(x,y)
,它將y
的值與數據幀的索引進行比較。如果這些指數沒有排序,則情節看起來會失真。 (大熊貓的命令也是如此。)
這是一個完整的例子。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({"y" : [1,2,5,1,1,6,1] }, index=[2,1,3,6,5,6,7])
plt.plot(df["y"].as_matrix(), lw=3, label='plt.plot(df["y"].as_matrix())')
plt.plot(df["y"], lw=3, label='plt.plot(df["y"])')
df["y"].plot(ax=plt.gca(), linestyle="--", color="k", label='df["y"].plot()')
plt.legend()
plt.show()
最簡單的解決方案,以便能夠使用任何上述方法是重新索引數據框
df = df.reset_index()
這或多或少發生了什麼。我已經對我的數據進行了二次採樣並在另一列上進行了排序,這使我的索引倍增。我假定系列中的「自然」索引就像數組索引,但顯然不是。出於好奇,以這種方式進行索引的原因是什麼,而不僅僅是[0,series.size)...? – Scott
原因當然是每個條目都應該有自己定義的索引(否則就沒有索引的理由)。這允許例如在排序或過濾之後明確地識別數據。您可以使用'df = df.reset_index()'來爲數據框新建索引。 – ImportanceOfBeingErnest
...就像在關係數據庫中一樣。 – Scott
,如果你提供的樣本數據可能會有幫助。我注意到兩種方法之間的x軸範圍發生了變化。我在考慮'熊貓系列'的索引可能會導致不同的行爲 –