Python 2.7 使用Pandas创建唯一列表
我有一个包含1000多列数据的xlsx文件。我想首先解析数据文件中的每一列(可以包含数字和字母),然后根据解析后的数据创建一个唯一的列表 我是一个彻头彻尾的傻瓜&曾经尝试过“for”和“do-while”循环,但这两个循环对我都不起作用 到目前为止,我已经: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
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()应该仍然可以工作,是吗?