1、series
pandas.Series( data, index, dtype, name, copy)
参数说明:
data:一组数据(ndarray 类型)。
index:数据索引标签,如果不指定,默认从 0 开始。
dtype:数据类型,默认会自己判断。
name:设置名称。
copy:拷贝数据,默认为 False。
例1:
#根据输出我们可以看到三部分,索引,数据,数据类型
#如果没有指定索引,索引值就从0开始
a=[1,2,4]
b=pd.Series(a)
print(b)
#我们可以根据索引值读取数据
print(b[1])
a1=['2021年7月19号','35°','947hPa']
b1=pd.Series(a1,index=['日期','温度','气压'])
print(b1)
#还可以根据字典的形式创建,字典:以键值对形式出现,键与值之间用:分割,键值对之间用,分割
a3={'日期': '2021年7月19号下午15:00','温度': '很热','舒适度': '不舒适'}
b3=pd.Series(a3)
print(b3)
结果如下:
2、pandas.DataFrame( data, index, columns, dtype, copy)
data:一组数据(ndarray、series, map, lists, dict 等类型)。
index:索引值,或者可以称为行标签。
columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
dtype:数据类型。
copy:拷贝数据,默认为 False。
1、以字典的形式创建数组
例子:
a=np.random.randint(5,size=(4))#返回左边闭右边开的10个数字
b=np.random.randint(5,size=(4))
#以字典的形式创建dataframe数据
data={
"块1": a,
"块2": b
}#注意块1,块2是按横着排列即行排列
df=pd.DataFrame(data,index=['第一张图','第一张图','第二张图','第二张图'])
print(df)
结果如下;
2、以ndarrays创建数组
例子:
#创建数据集,使用narrays进行创建
data={'Time':['2007','2008','2009','2010'],'卷一': [80,81,82,83],'卷二': [80,91,92,83]
}
#创建一个dataframe,并赋值给df
df=pd.DataFrame(data)
#指定列为索引:设定数据中的origin字段为索引
df1=df.set_index(['Time'])
print(df)
print(df1)
结果如下:
3、以series字典创建
#注意dataframe里面的index可以改变维度,比如增加了2011,2012,
也可以减少维度,比如只取2007,2008,2009
a=np.random.randn(4)
index1=['2007','2008','2009','2010']
index2=['2007','2008','2009']
# data=pd.Series({'block_1':np.random.randn(10),'block_2':np.random.randn(10)})
data={'block_1': pd.Series(a,index=index1),'block_2': pd.Series(a,index=index1)}
data1=pd.DataFrame(data,index=index2)
print(data1)
结果如下:
如果增加2011,2012,系统默认为nan值
a=np.random.randn(4)
index1=['2007','2008','2009','2010']
index2=['2007','2008','2009','2011','2012']
# data=pd.Series({'block_1':np.random.randn(10),'block_2':np.random.randn(10)})
data={'block_1': pd.Series(a,index=index1),'block_2': pd.Series(a,index=index1)}
data1=pd.DataFrame(data,index=index2)
print(data1)
结果如下:
但是如果series里面的index有重复的索引,就会报错
a=np.random.randn(4)
index1=['2007','2008','2009','2009']
index2=['2007','2008','2009']
# data=pd.Series({'block_1':np.random.randn(10),'block_2':np.random.randn(10)})
data={'block_1': pd.Series(a,index=index1),'block_2': pd.Series(a,index=index1)}
data1=pd.DataFrame(data,index=index2)
print(data1)
结果如下:
注意以字典形式创建的时候,其中键相当于dataframe的column。