本文已参与「新人创作礼」活动,一起开启掘金创作之路。
关于Pandas是干嘛的,功能有多强大我就不多说看了,我直接上干货。
1、导入pandas包
import pandas as pd
2、创建一个Series序列
pd.Series([1, 3, 5, np.nan, np.nan, 6, 8])print(s)0 1.01 3.02 5.03 NaN4 6.05 8.0dtype: float64
3、根据日期创建一个序列(DatetimeIndex)
linux下操作的结果
periods 表示的时期
freq=“D” 表示的是以 Day 增加也就是天数目,所以一直是日在增加,当然也可以改成“M”,具体可以参考
freq参数可选项目
还有一些参数,比如开始、结束、时区等相关参数。
4 、设置index的Series
s = pd.Series(np.random.randn(5), index=["a", "b", "c", "d", "e"])a 0.114858b 0.872704c 0.284864d 0.884343e 0.249049dtype: float64
5、从字典里生成Series
d = {"a": 0.0, "b": 1.0, "c": 2.0}pd.Series(d)
Series切片
data2 = pd.Series(np.random.randint(1, 5, 5), index=["a", "b", "c", "d", "e"], dtype="uint32") print(data2) print("-" * 32) print("median", data2.median()) # 取平均数 print("-" * 32) print(data2[:2]) # 取前两个 print("-" * 32) print(data2[data2 > data2.median()]) # 取大于平均数的 print(data2[[4, 3, 1]]) # 取列表中的索引为 4、3、1的数 print(np.exp(data2)) # np.exp()函数是求e x e^{x}ea 1b 3c 2d 4e 2dtype: uint32--------------------------------median 2.0--------------------------------a 1b 3dtype: uint32--------------------------------b 3d 4dtype: uint32e 2d 4b 3dtype: uint32a 2.718282b 20.085537c 7.389056d 54.598150e 7.389056dtype: float64Process finished with exit code 0
Series类似字典的操作
data2 = pd.Series([1, 2, 3, 4, 5], index=["a", "b", "c", "d", "e"], dtype="uint32") print(data2['a']) # 取出索引是 a 的数据 print('b' in data2) # 判断是否有 b 这个索引 print(data2.get("d"))
Series类似 narray的操作
data2 = pd.Series([1, 2, 3, 4, 5], index=["a", "b", "c", "d", "e"], dtype="uint32") print(data2+data2) print(2*data2) print(np.exp(data2))
Series 设置name和修改
data2 = pd.Series([1, 2, 3, 4, 5], index=["a", "b", "c", "d", "e"], dtype="uint32") data2.name = "hongbiao" print(data2.name) data = data2.rename("zhangsan") # 注意这里rename之后就是另外一个对象了 print(data.name)
希望读者看到有写错的批评指正