内容:
·DataFrame的结构
·DataFrame的创建
·DataFrame读取本地Excel文件
【DataFrame结构】
# DataFrame是一个表格型数据,可以看做是【由Series组成的字典】(共同用一个索引)
# DataFrame由按一定顺序排列的多列数据组成,设计初衷是将Seires的使用场景从一维拓展到多维,
# DataFrame既有行索引,又有列索引
# 行索引:index
# 列索引:columns
# 值:values(numpy的二维数组)
# 表格数据结构,有行索引,有列索引
# 是Series的字典
# 所构成字典的键key,就是二维表格的列索引,
# 字典的值value是一个列表,可以不传入Series,但一旦传入某一个列表,解释器就会将其当成Series对象来维护
# Series数组构成了表格的某一列
# 为什么Series数组不能作为行出现呢?
# 因为Series数组会进行强制类型统一,如果作为列出现的话,如下例中,年龄作为一个数字,会被强制类型统一为字符,不和常理
dict_DF = {
"name": Series(data=["jom", "kom", "lom"], index=["A", "B", "C"]),
"age": Series(data=["28", "29", "30"], index=["A", "B", "C"])
}
print(dict_DF)
print()
运行结果:
【DataFrame的创建】
# 列索引:columns
# 行索引:index
# 值:values(numpy的二维数组)
(第一种创建方式)
概念:
直接创建,在创建时给定行索引index和列索引columns,但这种创建方式不推荐使用。
代码:
df_1 = DataFrame(data=np.random.randint(0, 100, size=(3, 3)), index=list("abc"), columns=list("def"))
print("第一种:\n", df_1)
print()
运行结果:
(第二种创建方式)
概念:
在创建DataFrame时,以字典作为传入参数,字典中的key,代表列索引,字典value中的index代表行索引。
# 第二种构建方式:
print("第二种:")
dict_df = {
# d、e、f为表格列索引
# a、b、c为表格行索引
"d": Series(data=np.random.randint(0, 100, size=3), index=list("abc")),
"e": Series(data=np.random.randint(0, 100, size=3), index=list("abc")),
"f": Series(data=np.random.randint(0, 100, size=3), index=list("abc"))
}
df_2 = DataFrame(dict_df)
print(df_2)
print()
代码:
运行结果:
【DataFrame读取本地Excel文件】
(读取方法)
# 读取本地文件:
# pd.read_csv()
# pd.read_table()
# pd.read_excel()
(读取示例)
# 读取数据:这里以读取Excel表格为例
# excel_things = pd.read_excel("excel表格地址",header=a,index_col=b,sheet_name=c)
# header=a:设置在excel表格中,哪几行作为列标签,默认就是第一行
# index_col=b:设置在excel表格中,哪几列作为行标签,默认就是第一列
# sheet_name=c:设置读取的是哪个表格,可以指定索引,也可以指定表名称
ex_1 = pd.read_excel('C:/Users/YHT/Desktop/数据/表格_DataFrame.xlsx', header=0, index_col=0)
df_excel_1 = pd.DataFrame(ex_1)
print(df_excel_1)
print()
ex_2 = pd.read_excel('C:/Users/YHT/Desktop/数据/表格_DataFrame.xlsx', header=0, index_col=0,sheet_name="Sheet2")
df_excel_2 = pd.DataFrame(ex_2)
print(df_excel_2)
print()
运行结果: