2014-03-26 52 views
1

我有一個數據幀df數據幀相關產生的NaN雖然它的值都是整數

df = pandas.DataFrame(pd.read_csv(loggerfile, header = 2)) 

values = df.as_matrix() 

df2 = pd.DataFrame.from_records(values, index = datetimeIdx, columns = Columns) 

編輯:

現在讀取數據這樣的建議:

df2 = pd.read_csv(loggerfile, header = None, skiprows = [0,1,2]) 

示例:

      0    1  2 3 4 5 6 7 8 \ 
0 2014-03-19T12:44:32.695Z 1395233072695 703425 0 2 1 13 5 21 
1 2014-03-19T12:44:32.727Z 1395233072727 703425 0 2 1 13 5 21 

    9 10 11 12 13 14 15 16 
0 25 0 25 209 0 145 0 0 
1 25 0 25 209 0 146 0 0 

列都是int類型(除了第一個):

print df2.dtypes 

0  object 
1  int64 
2  int64 
3  int64 
4  int64 
5  int64 
6  int64 
7  int64 
8  int64 
9  int64 
10  int64 
11  int64 
12  int64 
13  int64 
14  int64 
15  int64 
16  int64 

但在我的關係,某些列似乎是爲NaN。

df2.corr() 

    1   2 3   4   5 6 7   8   ...  
1 1.000000 NaN 0.018752 -0.550307 NaN NaN 0.075191  0.775725 
2 NaN  NaN NaN   NaN  NaN NaN NaN   NaN 
3 0.018752 NaN 1.000000 -0.067293 NaN NaN -0.579651 0.004593 
... 
+0

我不認爲它是一個R問題。您需要刪除R標記 –

+0

查看您的其他問題,請首先嚐試正確讀入數據。此外,你應該提供一個小樣本的數據 – joris

+0

我的編輯是否使它更清晰? – user2366975

回答

3

這些列不改變其價值,現在,是

爲,里斯指出,你會預期的NaN如果值不變化。要知道爲什麼看一看關係式:

COR(I,J)= COV(I,J)/ [STDEV(I)* STDEV(J)]

如果第i個的值或第j個變量不會變化,那麼相應的標準偏差將爲零,分數的分母也是如此。因此,相關性將是NaN。