使用Pandas创建唯一列表

时间:2016-09-16 14:22:17

标签: 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='Data'

    for col in range(worksheet[0], worksheet[1300]):
        print(col)

我想我需要附加数据并写入文本文件,然后从文本文件创建一个唯一的列表 - 我可以做第二部分,它只是将它放入我遇到问题的文本文件中。 / p>

由于

1 个答案:

答案 0 :(得分:2)

您可以通过切片和使用步骤arg(即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上调用np.unique来获取所有唯一值的单个数组:

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.        ])