DataFrame 是Python的一种外置数据类型, Pandas 中的一个表格型的数据结构,和现实的数据二维表格相同,包含多个有序的列,每列可以是不同的值类型(数值、字符串、布尔型等)。DataFrame 即有行索引也有列索引,可以看做是由 Series 组成的字典。使用DataFrame对象来创建该数据类型时,可以使用多种数据类型来生成该数据类型。
而二维表格数据是数据分析和挖掘中很常用的数据类型,数据的处理、清洗等特征的处理,极大部分是基于这种数据类型,下面将从各个细节和内容,详细介绍这种数据类型的处理,便于后续数据分析和挖掘、模型建立打下基础。跟上思路,你也可以成为数据分析挖掘的专家,更为AI智能模型的理解打下基础。
DataFrame的创建方法
1、使用字典类型
创建DataFrame数据,字典的格式形式大家都记着吧,包含两个主要的内容键和值,而键将成为列名,而值将成为列数据。
import pandas as pd
data1 = { '日期':['2024/4/9','2024/4/10','2024/4/11','2024/4/12'],
'开盘': [146.5,146.2,142.6,142],
'收盘': [146.48,143.12,142.34,140.49],
'最高': [148.21,146.5,142.66,143.45],
}
df1 = pd.DataFrame(data1)
print(df1)
输出结果:
日期 开盘 收盘 最高
0 2024/4/9 146.5 146.48 148.21
1 2024/4/10 146.2 143.12 146.50
2 2024/4/11 142.6 142.34 142.66
3 2024/4/12 142.0 140.49 143.45
2、使用列表创建DataFrame
通过调用pd.DataFrame()函数并传入一个列表或一个数组来创建DataFrame,列名通过columns指定。
import pandas as pd
data1 = [['张三', 25], ['李四', 30], ['马五', 35]]
df = pd.DataFrame(data1, columns=['name', 'age'])
print(df)
输出结果:
name age
0 张三 25
1 李四 30
2 马五 35
3、numpy创建
import pandas as pd
import numpy as np
在创建DataFrame数据类型时,通过numpy的随机数据,可以生成随机数据的二维表,可以用于模拟测试数据,还可以通过调用np.nan指定不知道数据的元素设为空置。
import numpy as np
data = {'name': ['张三', '李四', '马五'],
'age': [25, np.nan, 35],
'city': ['上海','北京', np.nan]}
df = pd.DataFrame(data, index=[0, 1, 2])
print(df)
df1 = pd.DataFrame(np.random.randn(4, 4), columns=list('ABCD'))
print(df1)
输出结果:
name age city
0 张三 25.0 上海
1 李四 NaN 北京
2 马五 35.0 NaN
A B C D
0 1.664410 0.271256 -0.598112 0.504849
1 1.099605 -1.003835 0.280873 0.327411
2 1.802693 -0.375558 -0.373909 0.481588
3 -1.226063 1.078735 -1.727267 -1.240940
4、Series创建DataFrame对象
import pandas as pd
d = {'体重': pd.Series([175, 67, 56,60], index=['a', 'b', 'c','d']),
'年龄': pd.Series([20, 26, 30, 32],index=['a', 'b', 'c', 'd']) }
df = pd.DataFrame(d)
print(df)
输出结果:
体重 年龄
a 175 20
b 67 26
c 56 30
d 60 32
本部分介绍Python的pandas模块数据框DataFrame的概念,以及多种创建数据框的方法,创建过程中综合使用了python其他章节的知识,包括列表、字典、numpy和series的知识点,便于混合使用编程语言知识点,锻炼编程思想和深入理解各层级的知识,以及综合应用知识的能力。
数据框还有一个主要的生成方式,文件的读入和导出,下一节介绍。
码字不易,欢迎关注、点赞和收藏。如果文章能给你带来知识很力量,欢迎留言和讨论。你的支持是我前进的动力。