《scikit-learn机器学习常用算法原理及编程实战》—2.4.3 数据访问
2.4.3 数据访问
Pandas可以方便地对数据进行选择和访问。我们可以通过行索引范围来访问特定几行的数据,这个和Numpy类似。
[IN]: df[3:5]
[OUT]:
A B C D
3 -0.152205 -0.121888 0.841658 -1.493958
4 0.248414 -0.676985 1.326487 -0.455541
还可以选择列,如选择A、B、D这3列数据:
[IN]: df[['A', 'B', 'D']]
[OUT]:
A B D
0 0.968762 1.501239 -0.456468
1 1.413471 -0.309746 1.536548
2 -0.399065 -0.040439 -0.318217
3 -0.152205 -0.121888 -1.493958
4 0.248414 -0.676985 -0.455541
5 0.906221 -2.158694 -0.024769
还可以使用DataFrame.loc()函数通过标签来选择某个元素,或使用DataFrame.iloc()函数通过数组索引来访问某个元素。
[IN]: df.loc[3, 'A']
[OUT]: -0.15220488957687467
[IN]: df.iloc[3, 0]
[OUT]: -0.15220488957687467
[IN]: df.iloc[2:5, 0:2]
[OUT]:
A B
2 -0.399065 -0.040439
3 -0.152205 -0.121888
4 0.248414 -0.676985
还可以通过布尔值来选择,如可以选择C列里所有大于0的数据所在的行。
[IN]: df[df.C > 0]
[OUT]:
A B C D
1 1.413471 -0.309746 0.407559 1.536548
2 -0.399065 -0.040439 1.339359 -0.318217
3 -0.152205 -0.121888 0.841658 -1.493958
4 0.248414 -0.676985 1.326487 -0.455541
可以很方便地对数据进行修改,如可以添加一列,列名为TAG。
[IN]: df["TAG"] = ["cat", "dog", "cat", "cat", "cat", "dog"]
[OUT]:
A B C D TAG
0 0.968762 1.501239 -0.284952 -0.456468 cat
1 1.413471 -0.309746 0.407559 1.536548 dog
2 -0.399065 -0.040439 1.339359 -0.318217 cat
3 -0.152205 -0.121888 0.841658 -1.493958 cat
4 0.248414 -0.676985 1.326487 -0.455541 cat
5 0.906221 -2.158694 -0.201354 -0.024769 dog
接着可以根据TAG列做分组统计。
[IN]: df.groupby('TAG').sum()
[OUT]:
A B C D
TAG
cat 0.665906 0.661926 3.222551 -2.724184
dog 2.319691 -2.468440 0.206205 1.511778
- 点赞
- 收藏
- 关注作者
评论(0)