您可以通過鑄造或使用numpy的tolist()
功能列列表轉換。然後,您可以從這個通過正常的方式切片選擇:
In [5]:
import pandas as pd
df = pd.DataFrame(dict(zip(list('abcdefghij'), [arange(10)] * 10)))
cols = df.columns.values.tolist()
# you can also do list(df.columns)
In [11]:
cols
Out[11]:
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
In [12]:
subcols = cols[2:5]
df[subcols]
Out[12]:
c d e
0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
7 7 7 7
8 8 8 8
9 9 9 9
[10 rows x 3 columns]
爲了選擇多個不連續的列,你可以這樣做:
In [36]
part1 = cols[0:3]
part2 = cols[6:8]
subcols = part1+part2
df[subcols]
Out[36]:
a b c g h
0 0 0 0 0 0
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7
8 8 8 8 8 8
9 9 9 9 9 9
[10 rows x 5 columns]
可以從您的列表的片段I-J,說我想要的冷杉四,然後跳過接下來的2,然後給我3個? 所以a,b,c,d,g,h? – yoshiserry
@yoshiserry不簡明扼要你會因爲某些原因做'part1 = cols [0:3],part2 = cols [6:8],subcols = part1 + part2,df [subcols]'' – EdChum
(解析列的一個子集)它將索引和第一列'Load year'結合在一起,我該如何阻止它? – yoshiserry