有什么区别:
Maand['P_Sanyo_Gesloten']
Out[119]:
Time
2012-08-01 00:00:11 0
2012-08-01 00:05:10 0
2012-08-01 00:10:11 0
2012-08-01 00:20:10 0
2012-08-01 00:25:10 0
2012-08-01 00:30:09 0
2012-08-01 00:40:10 0
2012-08-01 00:50:09 0
2012-08-01 01:05:10 0
2012-08-01 01:10:10 0
2012-08-01 01:15:10 0
2012-08-01 01:25:10 0
2012-08-01 01:30:10 0
2012-08-01 01:35:09 0
2012-08-01 01:40:10 0
...
2012-08-30 22:35:09 0
2012-08-30 22:45:10 0
2012-08-30 22:50:09 0
2012-08-30 22:55:10 0
2012-08-30 23:00:09 0
2012-08-30 23:05:10 0
2012-08-30 23:10:09 0
2012-08-30 23:15:10 0
2012-08-30 23:20:09 0
2012-08-30 23:25:10 0
2012-08-30 23:35:09 0
2012-08-30 23:40:10 0
2012-08-30 23:45:09 0
2012-08-30 23:50:10 0
2012-08-30 23:55:11 0
Name: P_Sanyo_Gesloten, Length: 7413, dtype: int64
和
Maand[[1]]
Out[120]:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 7413 entries, 2012-08-01 00:00:11 to 2012-08-30 23:55:11
Data columns (total 1 columns):
P_Sanyo_Gesloten 7413 non-null values
dtypes: int64(1)
如何通过column-indexnumber获取数据? 而不是索引字符串?
答案 0 :(得分:28)
一个是列(又名系列),另一个是DataFrame:
In [1]: df = pd.DataFrame([[1,2], [3,4]], columns=['a', 'b'])
In [2]: df
Out[2]:
a b
0 1 2
1 3 4
列'b'(又名系列):
In [3]: df['b']
Out[3]:
0 2
1 4
Name: b, dtype: int64
[1]中具有列(位置)的子数据框:
In [4]: df[[1]]
Out[4]:
b
0 2
1 4
注意:指定您是否在谈论列名,更可取(并且不那么模糊),例如: ['b']或整数位置,因为有时您可以将列命名为整数:
In [5]: df.iloc[:, [1]]
Out[5]:
b
0 2
1 4
In [6]: df.loc[:, ['b']]
Out[6]:
b
0 2
1 4
In [7]: df.loc[:, 'b']
Out[7]:
0 2
1 4
Name: b, dtype: int64
答案 1 :(得分:6)
以下摘自http://pandas.pydata.org/pandas-docs/dev/indexing.html。还有一些例子......你必须向下滚动一点
In [816]: df1
0 2 4 6
0 0.569605 0.875906 -2.211372 0.974466
2 -2.006747 -0.410001 -0.078638 0.545952
4 -1.219217 -1.226825 0.769804 -1.281247
6 -0.727707 -0.121306 -0.097883 0.695775
8 0.341734 0.959726 -1.110336 -0.619976
10 0.149748 -0.732339 0.687738 0.176444
通过整数切片选择
In [817]: df1.iloc[:3]
0 2 4 6
0 0.569605 0.875906 -2.211372 0.974466
2 -2.006747 -0.410001 -0.078638 0.545952
4 -1.219217 -1.226825 0.769804 -1.281247
In [818]: df1.iloc[1:5,2:4]
4 6
2 -0.078638 0.545952
4 0.769804 -1.281247
6 -0.097883 0.695775
8 -1.110336 -0.619976
通过整数列表
选择In [819]: df1.iloc[[1,3,5],[1,3]]
2 6
2 -0.410001 0.545952
6 -0.121306 0.695775
10 -0.732339 0.176444
答案 2 :(得分:2)
另一种方法是选择一个包含columns
数组的列:
In [5]: df = pd.DataFrame([[1,2], [3,4]], columns=['a', 'b'])
In [6]: df
Out[6]:
a b
0 1 2
1 3 4
In [7]: df[df.columns[0]]
Out[7]:
0 1
1 3
Name: a, dtype: int64
答案 3 :(得分:1)
另一种按编号访问列的方法是使用映射字典,其中键是列名,值是列号
dates = pd.date_range('1/1/2000', periods=8)
df = pd.DataFrame(np.random.randn(8, 4),
index=dates, columns=['A', 'B', 'C', 'D'])
print(df)
dct={'A':0,'B':1,'C':2,'D':3}
columns=df.columns
print(df.iloc[:,dct['D']])