Python 2.7 使用Pandas创建唯一列表

Python 2.7 使用Pandas创建唯一列表,python-2.7,parsing,pandas,unique,xlrd,Python 2.7,Parsing,Pandas,Unique,Xlrd,我有一个包含1000多列数据的xlsx文件。我想首先解析数据文件中的每一列(可以包含数字和字母),然后根据解析后的数据创建一个唯一的列表 我是一个彻头彻尾的傻瓜&曾经尝试过“for”和“do-while”循环,但这两个循环对我都不起作用 到目前为止,我已经: import pandas as pd workbook = pd.read_excel('C:\Python27\Scripts\Data.xlsx') worksheet = workbook.sheetname

我有一个包含1000多列数据的xlsx文件。我想首先解析数据文件中的每一列(可以包含数字和字母),然后根据解析后的数据创建一个唯一的列表

我是一个彻头彻尾的傻瓜&曾经尝试过“for”和“do-while”循环,但这两个循环对我都不起作用

到目前为止,我已经:

    import pandas as pd
    workbook = pd.read_excel('C:\Python27\Scripts\Data.xlsx')
    worksheet = workbook.sheetname='Data'

    for col in range(worksheet[0], worksheet[1300]):
        print(col)
我想我需要附加数据,也许写一个文本文件,然后从文本文件创建一个唯一的列表-我可以做第二部分,它只是把它放到我遇到麻烦的文本文件中


谢谢

您可以通过切片和使用步骤参数来迭代列,即
df.ix[:,::2]

In [35]:
df = pd.DataFrame({'a':1, 'b':[1,2,3,4,5], 'c':[2,3,4,5,6], 'd':0,'e':np.random.randn(5)})
df

Out[35]:
   a  b  c  d         e
0  1  1  2  0 -0.352310
1  1  2  3  0  1.189140
2  1  3  4  0 -1.470507
3  1  4  5  0  0.742709
4  1  5  6  0 -2.798007
在这里,我们每第二列进行一步:

In [37]:
df.ix[:,::2]

Out[37]:
   a  c         e
0  1  2 -0.352310
1  1  3  1.189140
2  1  4 -1.470507
3  1  5  0.742709
4  1  6 -2.798007
然后,我们可以调用整个df来获得一个包含所有唯一值的数组:

In [36]:
np.unique(df.ix[:,::2])

Out[36]:
array([-2.79800676, -1.47050675, -0.35231005,  0.74270934,  1.        ,
        1.18914011,  2.        ,  3.        ,  4.        ,  5.        ,  6.        ])

对不起,当你说每第二栏时,你是指第二栏还是每偶数栏?你是想要一些全局列表还是每列列表?你也看了吗?谢谢Ed,它是每一个偶数列-0,2,4,6,8等等,或者A,C,E,G,I一直到AWK。总共有1286列,所以我想从其中的643列中列出一个列表,然后从该列表中创建一个唯一的列表。我肯定会使用pandas.series.unique(),但我不确定如何将643列合并到一个列表中。非常好。通常,在调用
numpy
函数时,不需要将
作为_matrix
调用?我模模糊糊地记得,如果我不这样做,
sklearn
会感到不安。@AmiTavory我认为sklearn在处理dfs和系列作为数据参数方面要好得多,但很多时候我只是传递了
df.values
,我认为
np
对数据帧的处理非常好,历史上曾经有过这样的情况,
np
没有正确调用
\uuuu数组\uuuu
属性,但最近并没有遇到过这样的情况,我就快到了。当我打印:df.ix[:,::2]时,我似乎仍在获取所有数据。但是np.unique()应该仍然可以工作,是吗?