pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
一维数组,与numpy中array类似,series中可以保存的数据类型:字符串、布尔、数字等。
#默认情况下,索引自增,也可以指定索引
~~~import pandas as pd
#创建一维数组
data=[10,20,30,40,50]
index=['a','b','c','d','e']
series1=pd.Series(data)
series2=pd.Series(data,index)
print('series1是:',series1)
print("series2是:",series2)
#结果:
series1是: 0 10
1 20
2 30
3 40
4 50
dtype: int64
series2是: a 10
b 20
c 30
d 40
e 50
dtype: int64
series1.index.name="索引"
series1.name="数据"
print(series1)
print("!!!!!!!!",series1.values)
print("???????",series1.index)
#结果:
索引
0 10
1 20
2 30
3 40
4 50
Name: 数据, dtype: int64
!!!!!!!! [10 20 30 40 50]
??????? RangeIndex(start=0, stop=5, step=1)
###### (3)series按索引取值:
series3=pd.Series({'a':[1,2],'b':[2,3],'c':[3,4],'d':[4,5]})
print(series3["a"])
print(series3[["a","d"]])
print(series3["a":"c"])
#使用下标进行索引取值:
print(series3[0])
print(series3[[0,3]])
print(series3[0:3])
series4=pd.Series([1,2,3,4,5],["a","b","c","d","e"])
print(series4>3)
print(series4[series4>3])
#结果:
以时间为索引的series
二维表格型数据结构,可理解为series的容器
(1)通过字典创建DataFrame
obj_dict={'a':[1,2],'b':[2,3],'c':[3,4],'d':[4,5]}
obj_dataframe_dict=pd.DataFrame(obj_dict)#通过字典创建dataframe
print(obj_dataframe_dict)
#结果:
obj_array=np.array([[1,2,3,4],[3,4,5,6]]) #矩阵[[1 2 3 4]
#[3 4 5 6]]
obj_dataframe_array=pd.DataFrame(obj_array,index=['one','two'],columns=["数据1","数据2","数据3","数据4"])#通过矩阵创建dataframe,并制定字段名
print(obj_dataframe_array)
#结果:
series1=pd.Series([1,2,3,4,5])
series2=pd.Series(["a","b","c","d","e"])
df=pd.DataFrame([series1,series2])
print(series1,series2)
print(df)
#结果:
df_dataframe=pd.DataFrame(df,index=[0,1,2,3],columns=[1,2,3,4,"数据5"]) #使用dataframe创建dataframe
print(df_dataframe)
#结果:
例如:
(1)新建dataFrame,index超出原df中index
df_dataframe=pd.DataFrame(df,index=[4,5,6],columns=[1,2,3,4,"数据5"]) #使用dataframe创建dataframe
print(df_dataframe)
#结果:
(2)新建dataFrame,columns超出原df的columns
df_dataframe=pd.DataFrame(df,index=[0,1,2],columns=[4,"数据1","数据5"]) #使用dataframe创建dataframe
print(df_dataframe)
#结果:
df_dataframe=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=[0,1,2],columns=["apple","banana","orange"]) #使用dataframe创建dataframe
print(df_dataframe)
print("################")
print(df_dataframe.index)
print(df_dataframe.columns)
print("!!!!!!!!!!!!!!!")
print(df_dataframe.dtypes)
print(df_dataframe.values)
#结果:
#修改index属性值(借用上面的df_dataframe)
df_dataframe.index=["hehe","haha","lele"]
df_dataframe.columns=["one","two","three"]
print(df_dataframe)
#结果
(1)取dataFrame中某一个值
df_dataframe=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=[1,2,3],columns=["apple","banana","orange"]) #使用dataframe创建dataframe
print(df_dataframe["apple"][1])
#结果:
1
(2)取某行数据,多行数据
a:索引取值:
print(df_dataframe.loc[1]) #这里的1表示索引
print("&&&&&&&&&&&&&&&&")
print(df_dataframe.loc[2,"apple":"orange"])
#结果:
print(df_dataframe.ix[1,"apple":"orange"])
#结果:
print(df_dataframe.iloc[2])#此时的2是index的下标
#结果:
print(df_dataframe.head(2)) #获取前两行数据
print("!!!!!!!!!!!!")
print(df_dataframe.tail(2)) #获取后两行数据
#结果:
print(df_dataframe[df_dataframe.apple>1])
#结果:
print(df_dataframe[(df_dataframe.apple>1) & (df_dataframe.banana>5)])
#结果:
print(df_dataframe["apple"])
#结果: