Python数据分析_Pandas01_数据框的创建和选取

2017-02-03  本文已影响4933人  ChZ_CC

主要内容:


Object Creation 新建数据

In [73]: s = pd.Series([1,3,5,np.nan,6,8])

In [74]: s
Out[74]:
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

In [75]: dates = pd.date_range('20130101', periods=6)

In [76]: df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))

In [77]: df
Out[77]:
                   A         B         C         D
2013-01-01 -0.411674  0.273549  0.629843  1.881497
2013-01-02  1.240512  0.970725  0.033099  1.553420
2013-01-03 -0.544326  0.545738 -1.325810  0.130738
2013-01-04  1.044803 -0.117151  0.874583  2.278227
2013-01-05 -2.194728 -2.536257  0.478644  0.057728
2013-01-06 -1.092031  1.249952  1.598761 -0.153423

#---pd.date_range?---
In [115]: pd.date_range(start='12/31/2011', end='12/31/2013', freq='A')
Out[115]: DatetimeIndex(['2011-12-31', '2012-12-31', '2013-12-31'], dtype='datetime64[ns]', freq='A-DEC')

In [78]: df2 = pd.DataFrame({ 'A' : 1.,
    ...:                      'B' : pd.Timestamp('20130102'),
    ...:                      'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
    ...:                      'D' : np.array([3] * 4,dtype='int32'),
    ...:                      'E' : pd.Categorical(["test","train","test","train"]),
    ...:                      'F' : 'foo' })
    ...: df2
    ...:
Out[78]:
     A          B    C  D      E    F
0  1.0 2013-01-02  1.0  3   test  foo
1  1.0 2013-01-02  1.0  3  train  foo
2  1.0 2013-01-02  1.0  3   test  foo
3  1.0 2013-01-02  1.0  3  train  foo

In [80]: df2.dtypes
Out[80]:
A           float64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object

在ipython中可以使用<tab>键进行自动补充,它会列出数据对象可以执行的操作。

查看数据

df.head()
df.tail(3)
df.index
df.columns              #返回一个这样的东西:pandas.indexes.numeric.Int64Index
df.values               #提取出数据框的数值,返回一个array

数据选取

建议 使用pandas的数据选取方法:.at, .iat, .loc, .iloc, .ix. 这些更高效。

df['A']       # 选取某一列,返回一个Series,== df.A,【只能选某一列,不能用":"多选。】

df[0:3]       # 选行
df['20130102':'20130104']
上一篇下一篇

猜你喜欢

热点阅读