pandas数据框只有一列但实际上它有多列

时间:2014-03-29 14:17:50

标签: python pandas dataframe

我想要做的是按IRI_KEY对数据进行排序,但我遇到了一些问题 因为当我尝试

Z['IRI_KEY']
KeyError: u'no item named IRI_KEY'

它告诉我他们没有IRI_KEY,但实际上它有

所以我尝试的是看那里的数组

我的数据没有像csv

这样的特定类型
mayo_groc = 'mayo_groc_1322_1373'
Z = pd.read_table(mayo_groc,sep=',', warn_bad_lines=True, error_bad_lines=True)
Z

       IRI_KEY WEEK SY GE VEND  ITEM  UNITS DOLLARS  F    D PR
  0    234212 1322  0  1 21000 77742    18    54.00 ...     
  1    234212 1322  0  1 21000 64005    11    30.69 ...     
  2    234212 1322  0  1 21000 64012     8    30.32 ...     
  3    234212 1322  0  1 21000 64508    13    38.87 ...     
  4    234212 1322  0  1 21000 77749    14    42.00 ...     
  5    234212 1322  0  1 21000 64004    14    39.06 ...     
  6    234212 1322  0  1 21000 64507    11    32.89 ...     
  7    234212 1322  0  1 21000 64512     6    22.74 ...     
  8    234212 1322  0  1 21000 64591     5    13.45 ...     
  9    234212 1322  0  1 21000 64510    14    41.86 ... 

[2444224行x 1列]

为什么它只有一列? 我该如何解决这个问题?

以下是实际数据示例 它没有任何扩展,所以我通过vi命令

读取它
vi mayo_groc_1322_1373

IRI_KEY WEEK SY GE VEND  ITEM  UNITS DOLLARS  F    D PR
 234212 1322  0  1 21000 77742    18    54.00 B    0 0
 234212 1322  0  1 21000 64005    11    30.69 NONE 0 0
 234212 1322  0  1 21000 64012     8    30.32 NONE 0 1
 234212 1322  0  1 21000 64508    13    38.87 NONE 0 0
 234212 1322  0  1 21000 77749    14    42.00 B    0 1
 234212 1322  0  1 21000 64004    14    39.06 NONE 0 0
 234212 1322  0  1 21000 64507    11    32.89 NONE 0 0
 234212 1322  0  1 21000 64512     6    22.74 A    0 1

1 个答案:

答案 0 :(得分:1)

看起来您的数据不是"逗号分隔",而是"空格分隔"。你试过了吗?

df = pd.read_csv('path/to/your/file', delim_whitespace=True)

如:

from StringIO import StringIO

text = """IRI_KEY WEEK SY GE VEND  ITEM  UNITS DOLLARS  F    D PR
 234212 1322  0  1 21000 77742    18    54.00 B    0 0
 234212 1322  0  1 21000 64005    11    30.69 NONE 0 0
 234212 1322  0  1 21000 64012     8    30.32 NONE 0 1
 234212 1322  0  1 21000 64508    13    38.87 NONE 0 0
 234212 1322  0  1 21000 77749    14    42.00 B    0 1
 234212 1322  0  1 21000 64004    14    39.06 NONE 0 0
 234212 1322  0  1 21000 64507    11    32.89 NONE 0 0
 234212 1322  0  1 21000 64512     6    22.74 A    0 1"""

filelike = StringIO(text)

df = pd.read_csv(filelike, delim_whitespace=True)