使用 Pandas 创建唯一列表
Creating a unique list using Pandas
我有一个包含超过 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
这里我们每第 2 列步进一次:
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. ])
我有一个包含超过 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
这里我们每第 2 列步进一次:
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. ])