2016-03-02 54 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中删除列。