Pandas的序列和数据框

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Pandas是一维到三维的数据处理工具,范围从一维的Series(序列)、二维的DataFrame(数据框)和 三维或者更高维的Panel(面板)。而Pandas中也可以进行统计特征计算。
mean():计算样本数据的算术平均值
std():计算样本数据的标准差
cov():计算样本数据的协方差矩阵
var():计算样本数据的方差
describe():用于描述样本数据的基本情况,包括非NaN数据的个数,均值,标准差,最小值,最大值以及样本的25%,50%和75%分位数。


序列Series

下面是一个简单的例子:

import pandas as pd
import numpy as np
s1 = pd.Series(np.array([10,20,30]))
s2 = pd.Series({"美国":10.0,"德国":20.0,"英国":30.0})
s3 = pd.Series(np.array([10.0,20.0,30.0]),index=['a','b','c'])

print(s1);print("---------")
print(s2);print("---------")
print(s3)

输出结果是:

0    10
1    20
2    30
dtype: int64
---------
美国    10.0
德国    20.0
英国    30.0
dtype: float64
---------
a    10
b    20
c    30
dtype: int64

可以看到,在s1中,没有给出行标签的命名,系统会自动从0开始递增给每行的标签进行命名,当然你也可以自己给行标签命名,如s3中自己给出index来命名行标签。在字典构造的序列中,字典的键就是第一列行标签,键所对应的值便是实际值。

对序列进行索引

a = s2['英国']
print(a)	#输出: 30.0
b = np.mean(s1)	#使用numpy库,求s1的平均值
print(b)		#输出20.0
c = s1.mean()	#使用pandas库,求s1的平均值
print(c)	#输出20.0

Pandas Series 对象的 mean() 方法默认会忽略缺失值(NaN),而 NumPy 的 mean() 函数默认情况下不会忽略缺失值。因此,如果数据中包含缺失值,两种方法得到的结果可能会不同。


数据框

import pandas as pd
import numpy as np
a = np.arange(1,7).reshape(3,2)
print(a);print("------")
d1 = pd.DataFrame(a)
print(d1);print("------")
d2 = pd.DataFrame(a,index=['a','b','c'],columns=['x1','x2'])
print(d2);print("------")
d3 = pd.DataFrame({'x1':a[:,0],'x2':a[:,1]},index=['a','b','c'])
print(d3)

输出结果是:

[[1 2]
 [3 4]
 [5 6]]
------
   0  1
0  1  2
1  3  4
2  5  6
------
   x1  x2
a   1   2
b   3   4
c   5   6
------
   x1  x2
a   1   2
b   3   4
c   5   6

在数据框中,可以用index来自定义行索引,用columns来自定义列索引。
需要注意的是:二维数据为字典的时候,键是列名,他的值是一维数组。

  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值