小澄以防萬一:爲什麼會得到NaN的無處不在,而安迪的第一個例子(df.div(df2)
)工程第一線的原因是格嘗試匹配索引(和列)。在安迪的例子中,在兩個數據幀中都找到了索引0,所以進行了劃分,而不是索引1,因此添加了一行NaN。
df_a = pd.DataFrame(np.random.rand(3,5), index= ['x', 'y', 't'])
df_b = pd.DataFrame(np.random.rand(2,5), index= ['z','t'])
df_a.div(df_b)
所以你的情況,DF2的唯一行的指數顯然是不存在的DF1:如果您運行以下(只有「T」線劃分)這種現象應該會出現更加明顯。 「幸運的是,這兩個數據框中的列標題相同,因此當您對第一行進行切片時,會得到一系列的索引,其索引由df2的列標題組成。這是最終允許師正確發生的原因。
對於索引和列匹配的情況下:
df_a = pd.DataFrame(np.random.rand(3,5), index= ['x', 'y', 't'], columns = range(5))
df_b = pd.DataFrame(np.random.rand(2,5), index= ['z','t'], columns = [1,2,3,4,5])
df_a.div(df_b)
有很大的幫助!謝謝。我試過兩種解決方案。 – Plug4
非常好。答案的第一句中說明了關鍵信息 - DataFrame必須除以一個向量(pd.Series)。 –