Python有多容易忘记, 如果不整理, 过一段时间就完全重新学了. 所以借着这一些练习, 把自己学过的东西记录并总结, 才方便日后回顾.

import pandas as pd
另外可以导入Series和DataFrame,因为这两个经常被用到:

from pandas import Series, DataFrame

DataFrame

生成DataFrame的若干种方式

从文件中来: 最常见的方式

手动生成: 可以根据自己的喜好来定制数据

data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'], 
        'year': [2000, 2001, 2002, 2001, 2002, 2003], 
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
df = pd.DataFrame(data)

一种比较漂亮的生成方式, 里面用的state, year, pop 都成为了columns:

>>> frame.columns
Index(['pop', 'state', 'year'], dtype='object')

    pop   state  year
0  1.5    Ohio  2000
1  1.7    Ohio  2001
2  3.6    Ohio  2002
3  2.4  Nevada  2001
4  2.9  Nevada  2002
5  3.2  Nevada  2003

但是这种方式通常只能适合于比较小的Dict, 如果有定制好的数据集, 那么就要通过dict() 生成各种各样的dictionary对象. 对dict的操作在这里按下不表

获取DataFrame的信息

可以把DataFrame当成一个Excel表格来看待

df2.index看对列序号:

df.columns每一列的名字

隐藏index columns , 只看df2values:

print(df2.values)

"""
array([[1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'test', 'foo'],
       [1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'train', 'foo'],
       [1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'test', 'foo'],
       [1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'train', 'foo']], dtype=object)
"""

describe():数据总结, 返回数据的mean, std, count

df2.describe()

"""
         A    C    D
count  4.0  4.0  4.0
mean   1.0  1.0  3.0
std    0.0  0.0  0.0
min    1.0  1.0  3.0
25%    1.0  1.0  3.0
50%    1.0  1.0  3.0
75%    1.0  1.0  3.0
max    1.0  1.0  3.0
"""

df.T:翻转数据的行列,比较常用的地方如果要对行进行索引

sort_index 进行排序并输出:

print(df2.sort_index(axis=1, ascending=False))

数据中的类型用 dtype这个属性:

print(df2.dtypes)

索引的方式

逗号分开行与列, 如果要分别选取多个行和多个列, 使用['col1','col2'] 分别列出需要的行列

1. ['col'] 字典的访问方式和对象访问方式

data['Colorado']字典的访问方式 [] 内为要访问的Key

data.Colorado 对象访问方式

注意: 这两种方式都不可以使用数字访问

2. iloc根据行列的位置

data.loc['Colorado', ['two', 'three']]
data.loc[:,['two']] #选出two所在的列

3. iloc 根据行列的名称

iloc实现相同的效果:

data.iloc[2, [3, 0, 1]]

4. ix 混合两种方式

Index 和 Column的选取/重命名

第一个参数为内容,

    groupedDF = pd.DataFrame(grouped, columns=['User Id', 'Rating'] , index= [for i in range (len(grouped))])

df.groupby()

根据'Pclass' 求平均

data.groupby('User Id')['Rating'].mean()
data.groupby('User Id').mean()['Rating']