Dataframe是一个二维的,因此既有行索引,又有列索引
import pandas as pd import numpy as np pd.Dataframe(np.arange(12).reshape(3,4))
image.png
疑问:除了0,1,2这种索引,能不能传其他索引进行指定?
可以的,通过index指定行索引,通过columns指定列索引
pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('efgh'))
image.png
DataFrame和Series的关系?
Dataframe可以看做是 Series容器,存放series数据
如何将字典格式的数据传入DataFrame?
1 - 一个字典,多个数组
pd.DataFrame({"name":['shanjialan','shanjiale'],"age":[19,21]})
image.png
2 - 多个字典,一个数组
pd.DataFrame([{"name":'sjl',"age":21},{"name":'syh',"age":23}])
image.png
配合数据库使用pandas
import pandas as pd from pymongo import MongoClient client = MongoClient() collection = client['douban']['tv1'] data = list(collection.find()) pf = pd.DataFrame(data) print(pf)
2-DataFrame的基础属性
df.shape
# 显示行数列数
df.dtypes
# 显示列数据类型
df.ndim
# 数据维度
df.index
# 行索引
df.columns
# 列索引
df.values
# 对象值,二维ndarray数组
3-DataFrame整体情况查询
df.head(n)
# 显示前n行的数据
df.tail(n)
# 显示倒数n行的数据
df.info()
# 显示相关信息概述:行数、列数、列非空个数、列类型、内容等
df.describe()
# 快速综合统计结果:计数、均值、标准差、最大值、最小值、四分位数等
import pandas as pd import numpy as np df = pd.read_csv('./doubantop250.csv',sep=',', header=None,encoding='unicode_escape') # 取前3行 print(df.head(3)) # 取后3行 print(df.tail(3)) # dataframe的相关信息 print(df.info()) # 描述 print(df.describe()) # 排序 df1 = df.sort_values(by=2) print(df1) # 取行和取列同时操作 print(df[:6][2]) # loc通过标签进行取行或者取列 # loc[index_name,col_name] # 通过x,y的索引进行取数据的操作 # iloc[index_x,index_y] df2 = pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("DEFG")) print(df2) print(df2.loc["a","D"]) print(df2.iloc[0,1]) # 取列数据 print(df2.loc["a"]) print(df2.loc["a",:]) print(df2.iloc[2,3]) # 多行多列 print(df2.loc[["a","b"],["D","G"]]) print(df2.iloc[:2,[1,2]])