Getting started
Dataframe
这是Dataframe:
若用一个字典初始化df,则键为列标,值按列排。
正如spreadsheet中的形式:
从df中选取某一列结果是Series,类似字典的索引操作。
可以对df进行一些操作,看看里面数据:
如 df.describe()输出数值列的统计信息:
In [9]: df.describe()
Out[9]:
Age
count 3.000000
mean 38.333333
std 18.230012
min 22.000000
25% 28.500000
50% 35.000000
75% 46.500000
max 58.000000
Series
Dataframe中每一列是一个Series:
可以初始化Series:
这样初始化的Series也没有列名。因其只有一列。
如何读写tabular数据
一图胜千言(这图太好了。官方文档真是优美)
官方提示:读取完数据后记得看一下,做个简单的检查。
直接打印df是默认打印前5行;head方法可以指定打印几行,tail方法可以打印后几行。
查看每列数据类型
df.dtypes查看每列数据类型。字符串用object类型表示。
df.info()
提供了technical information:
891行,index从0-891
如何选择df中数据
选出特定的列
age_sex = titanic[["Age", "Sex"]]
上面这个括号中,外层括号是选取某一列的作用;内层括号是Python的列表list。文档真详细!
选取age>35的行
above_35 = titanic[titanic["Age"] > 35]
这个作用于每一行的Age属性,返回布尔Series:
In [14]: titanic["Age"] > 35
Out[14]:
0 False
1 True
2 False
3 False
4 False
...
886 False
887 False
888 False
889 False
890 False
Name: Age, Length: 891, dtype: bool
选取Pclass为2 或3的行
这种方式等价于用|
选取2或3:
选择特定数据形成新df
希望从左边选取四个数据形成右边的:
上面代码中,loc方法是根据行列条件筛选的。逗号前面是行筛选条件,后面是列筛选条件。这两个条件都可以为布尔条件、切片等。
iloc是根据位置(序列位置)选取的。且选取完成后,还可以对选取后的数据赋值:
上图中,就对三个没名字的值赋值为anonymous。
根据数据画图
效果:
plot.*
air_quality = pd.read_csv("data/air_quality_no2.csv", index_col=0, parse_dates=True)
这个index_col参数指定列表的第一列作为index
根据现有列生成新列
问题描述:
根据现有列运算出新列
[]括号操作就是创建新列,其中每个元素都乘以1.882。
apply()函数
也是逐元素的,作用于一个Series(可能在df中的一列)
summary statistics统计数据
问题描述:
聚合统计数据
默认情况忽略掉空值,按行操作。
根据种类求聚合统计数据
问题描述:
下面这个图,和上面的实现的功能一样,只是换了操作顺序:
还可以根据多个条件分组:
根据类别计数
对应代码:
value_counts()函数作用为:对一列数据中每个不同的类别数据出现次数计数。这等价于先group,然后再计数: