2016-03-02 52 views
-3

我讀取一個大的csv文件到數據框df,它有240760行×33列。將列添加到數據框,但一些列disapper - Python

然而,當我添加一列的df,如下所示:

df['a'] = processed_data 

我注意到一個原始列disappers和列數保持33是否有數據幀大小限制?

+0

你如何檢查變量df的內容?如果您正在使用print(df),由於df中有大量的值,它可能不會顯示變量'df'中包含的所有值。請嘗試使用len()函數檢查列數,或者使用for循環並打印df變量 – YBathia

+0

的內容我沒有打印(df),但嘗試打印特定列,如print(df ['b'])並顯示錯誤 – eriee

+0

也許原來的'df'包含列'a',然後它被覆蓋。請使用'print df.columns'來檢查它 – jezrael

回答

0

我的機器上的以下作品:

import pandas as pd 
import numpy as np 

dates = pd.date_range('20130101',periods=6) 
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) 

processed_data = [0,0,0,0,0,0] 
df['new'] = processed_data 

print df 

回報

   A   B   C   D new 
2013-01-01 -0.670405 -0.526197 0.373418 -0.181366 0 
2013-01-02 -0.451113 1.265380 -0.240582 0.435271 0 
2013-01-03 0.804812 0.143988 1.535558 0.640288 0 
2013-01-04 0.996395 0.401765 0.288209 0.099472 0 
2013-01-05 -0.391577 -0.929378 -0.877802 1.549503 0 
2013-01-06 -0.222499 0.713709 0.666735 1.954450 0 
  • 也許,列「一」已經存在,你只是assigend新數據給它(而不是創建一個新列條目)?
  • 也嘗試打印df.info(),它給你打印輸出的df信息,如列數和對象類型。
  • 嘗試print df.head(),它打印DataFrame的前五行。馬貝更容易檢查你在看什麼。
  • 嘗試exporing您的數據幀爲CSV並看看它與文本編輯器或Excel:pd.to_csv
0

我試圖重現您的問題: 我這樣做

#Create a random DF with 33 columns 
df=pd.DataFrame(np.random.randn(2,33),columns=np.arange(33)) 
df['33']=np.random.randn(2) 
df.info() 
Output: 34 columns 

因此,我確定你的問題與列數的限制無關。也許你的專欄在某處被覆蓋。 確保您不要對任何命令使用inplace = True。

更新:某些方法,例如,如果您在處理過程中重新採樣數據,它可能會從dataFrame中刪除列。