向数据框添加列和索引会使值NaN

时间:2014-03-21 12:20:41

标签: python r dataframe ipython-notebook

如何更改indexcolumn,以便我的值与第一张表中的值保持一致?我不明白为什么添加一些索引会将我的值更改为NaN。

这就是我所拥有的:

Tabelle = pd.DataFrame(pd.read_csv(pfad, header = 2))
print Tabelle[:2]
                          0              1      81  60  5  63  73
0  2014-03-19T12:44:32.695Z  1395233072695  703425   0  2   1  13   
1  2014-03-19T12:44:32.727Z  1395233072727  703425   0  2   1  13    

这就是我想要的: (问题:loggerFile不是dataFrame,请参见问题末尾)

Tabelle = pd.DataFrame(loggerFile, columns = ID_columns, index = RowIndex)
print Tabelle[:2]

ID --->                               0              1      81 60  5 63  73  
Zeilen-Index                                                                  
1395233072695  2014-03-19T12:44:32.695Z  1395233072695  703425  0  2  1  13   
1395233072727  2014-03-19T12:44:32.727Z  1395233072727  703425  0  2  1  13  

这就是我得到的:

----------------------------------------------------------------    
Tabelle = pd.DataFrame(pd.read_csv(pfad), index = RowIndex)
print Tabelle[:2]

              Time Unixtime  Typ   grunz quak  bla blab Blub  \
Zeilen-Index                                                                
1395233072695  NaN  NaN  NaN  NaN  NaN   NaN   NaN NaN  NaN   
1395233072727  NaN  NaN  NaN  NaN  NaN   NaN   NaN NaN  NaN
----------------------------------------------------------------    
Tabelle = pd.DataFrame(pd.read_csv(pfad), columns = ID_columns, index = RowIndex)
print Tabelle[:2]

ID --->         0   1  81  60   5  63  73  
Zeilen-Index                                                                 
1395233072695 NaN NaN NaN NaN NaN NaN NaN    
1395233072727 NaN NaN NaN NaN NaN NaN NaN   

----------------------------------------------------------------
Tabelle = pd.DataFrame(pd.read_csv(pfad), columns = ID_columns)
print Tabelle[:2]

ID --->   0   1  81  60   5  63  73  
0       NaN NaN NaN NaN NaN NaN NaN  
1       NaN NaN NaN NaN NaN NaN NaN 

但如果我列出如下列表:

loggerFile =

[['2014-03-19T12:44:32.695Z', '1395233072695', '703425', '0', '2', '1', '13', '5', '21', '25', '0', '25', '209', '0', '145', '0', '0'], ['2014-03-19T12:44:32.727Z', '1395233072727', '703425', '0', '2', '1', '13', '5', '21', '25', '0', '25', '209', '0', '146', '0', '0'], ['2014-03-19T12:44:32.758Z', '1395233072758', '703425', '0', '2', '1', '13', '5', '21', '25', '0', '25', '209', '0', '145', '0', '0'], ['2014-03-19T12:44:32.790Z', '1395233072790', '703425', '0', '2', '1', '13', '5', '21', '25', '0', '25', '209', '0', '145', '0', '0'], ['2014-03-19T12:44:32.821Z', '1395233072821', '703425', '0', '2', '1', '13', '5', '21', '25', '0', '25', '209', '0', '145', '0', '0']]

将其添加为数据,它可以工作:

Tabelle = pd.DataFrame(loggerFile, columns = ID_columns, index = RowIndex)

ID --->                               0              1      81 60  5 63  73  
Zeilen-Index                                                                  
1395233072695  2014-03-19T12:44:32.695Z  1395233072695  703425  0  2  1  13   
1395233072727  2014-03-19T12:44:32.727Z  1395233072727  703425  0  2  1  13  

我的ID_columns是从列表中删除的:

ID_columns = pd.Index(ID_list, name="ID --->") 

列表ID_list看起来像

['0', '1', '81', '60', '5', '63', '73', nan, '10', '11', '2', '16', '30', '20', '33', '94', '61']

1 个答案:

答案 0 :(得分:0)

我认为问题在于您没有正确阅读csv文件,请尝试:

 pd.read_csv(pfad,sep='\s+')