(10)DataFrame的结构和构造函数

内容:

·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()

运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弦之森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值