Python---数据分析(Pandas六:二维数组DataFrame,DataFrame的创建,DataFra ...

打印 上一主题 下一主题

主题 1045|帖子 1045|积分 3135

一、 二维数组DataFrame

        DataFrame 是 Pandas 中的一个表格型的数据布局,包罗有多列的数据,每列可以是差别的值类型(数值、字符串、布尔型等),DataFrame 即有行索引也有列索引,可以被看做是由 Series 组成的字典。

二、DataFrame的创建

        在Pandas中,使用DataFrame来创建二维数组DataFrame
  1. class pandas.DataFrame(data=None, index=None, columns=None,
  2. dtype=None, copy=None)
复制代码
形貌阐明data 列表,其中每个元素是一行数据。
字典,其中键是列名,值是列值(列表或数组)。
2d-Ndarray。
Series对象,每个 Series成为一列
index行标签,假如没有指定,默认是整数索引[0, ..., n-1],其中 n 是数据中的行数。columns列标签,假如没有指定,则列标签从数据源中推断。dtype指定某列的数据类型。假如指定,则全部列都将转换为指定的数据类型。copy布尔值,默以为False。假如为True,则复制数据;假如为False,则尽可 能避免复制数据 2.1、使用列表创建

  1. import pandas as pd
  2. # 创建一个包含学生信息的嵌套列表,每个子列表代表一个学生的姓名、年龄和成绩
  3. data_list = [
  4.     ['小明', 20, 85],
  5.     ['小红', 18, 90],
  6.     ['小刚', 22, 88]
  7. ]
  8. # 定义列名,分别对应姓名、年龄和成绩
  9. columns = ['姓名', '年龄', '成绩']
  10. # 使用pandas库创建一个DataFrame,将数据列表和列名作为参数传入
  11. df = pd.DataFrame(data_list, columns=columns)
  12. # 打印DataFrame以查看数据
  13. print(df)
复制代码
 

2.2、使用字典创建

        可以使用一个字典来创建DataFrame,其中字典的键将作为列名,字典的值可以是列 表、数组等可迭代对象,它们的长度要划一,代表每一列的数据。
  1. import pandas as pd
  2. # 定义一个字典,其中包含两组数据:姓名和年龄
  3. data = {
  4.     'Name': ['Tom', 'Nick', 'John'],  # 'Name' 键对应一个包含姓名的列
  5.     'Age': [20, 21, 22]               # 'Age' 键对应一个包含年龄的列
  6. }
  7. # 使用pd.DataFrame()函数将字典转换为DataFrame对象
  8. # 这里,data字典中的键自动成为DataFrame的列名,值成为列的数据
  9. df = pd.DataFrame(data)
  10. # 打印DataFrame对象,查看其内容
  11. print(df)
复制代码

2.3、使用Ndarray数组创建

  1. import pandas as pd
  2. # 创建三个pandas Series对象
  3. s1 = pd.Series(['小明', '小红', '小刚'], name='姓名')
  4. s2 = pd.Series([20, 18, 22], name='年龄')
  5. s3 = pd.Series([85, 90, 88], name='成绩')
  6. # 将Series对象组合成一个字典,键是Series的名称,值是Series本身
  7. # 然后将这个字典传递给DataFrame构造函数来创建一个DataFrame
  8. df = pd.DataFrame({s1.name: s1, s2.name: s2, s3.name: s3})
  9. # 打印DataFrame对象,查看其内容
  10. print(df)
复制代码
 

  1. import pandas as pd
  2. import numpy as np
  3. # 定义一个二维Ndarray数组,其中包含两组数据:姓名和年龄
  4. data_array = np.array([
  5.     ['Tom', 20],
  6.     ['Nick', 21],
  7.     ['John', 19]
  8. ])
  9. # 使用pd.DataFrame()函数将二维数组转换为DataFrame对象
  10. df = pd.DataFrame(data_array, columns=['Name', 'Age'])
  11. # 打印
  12. print(df)
复制代码
2.4、使用Series创建

        假如有多个Series对象,也可以将它们组合成一个DataFrame。
  1. import pandas as pd
  2. # 创建三个pandas Series对象
  3. s1 = pd.Series(['小明', '小红', '小刚'], name='姓名')
  4. s2 = pd.Series([20, 18, 22, 0], name='年龄')
  5. s3 = pd.Series([85, 90, 88], name='成绩')
  6. s4 = pd.Series(name='test')
  7. # 使用concat拼接,并指定轴为1
  8. df = pd.concat([s1, s2, s3, s4], axis=1)
  9. # 打印DataFrame对象,查看其内容
  10. print(df)
复制代码

三、DataFrame的属性

  1. import pandas as pd
  2. data = {
  3.     '姓名': ['小明', '小红', '小刚'],
  4.     '年龄': [20, 18, 22],
  5.     '成绩': [85, 90, 88]
  6. }
  7. df = pd.DataFrame(data, index=[3, 4, 5])
  8. print(df)
复制代码

3.1、 index

        返回DataFrame的行索引。
  1. print(df.index)
  2. #Index([3, 4, 5], dtype='int64')
复制代码
3.2、 columns

        返回DataFrame的列名。
  1. print(df.columns)
  2. #Index(['姓名', '年龄', '成绩'], dtype='object')
复制代码
3.3、 values

        返回DataFrame中数据的Ndarray表现
  1. print(df.values)
  2. # [['小明' 20 85]
  3. #  ['小红' 18 90]
  4. #  ['小刚' 22 88]]
复制代码
3.4、 dtypes

        返回每列的数据类型。
  1. print(df.dtypes)
  2. # 姓名    object
  3. # 年龄     int64
  4. # 成绩     int64
  5. # dtype: object
复制代码
3.5 、shape

        返回DataFrame的形状(行数,列数)。
  1. print(df.shape)
  2. #(3, 3)
复制代码
3.6、 size

        返回DataFrame中的元素数量。
  1. print(df.size)
  2. #9
复制代码
3.7、 empty

        返回DataFrame是否为空。
  1. import pandas as pd
  2. import numpy as np
  3. data = [None]
  4. df = pd.DataFrame(data, index=['a'])
  5. print(df)
  6. print(df.empty)
复制代码

3.8 、T

        返回DataFrame的转置。
  1. import pandas as pd
  2. data = {
  3.     '姓名': ['小明', '小红', '小刚'],
  4.     '年龄': [20, 18, 22],
  5.     '成绩': [85, 90, 88]
  6. }
  7. df = pd.DataFrame(data, index=['a', 'b', 'c'])
  8. print(df)
  9. res = df.T
  10. print(res)
复制代码

3.9、 axes

        返回行轴和列轴的列表。
  1. import pandas as pd
  2. data = {
  3.     '姓名': ['小明', '小红', '小刚'],
  4.     '年龄': [20, 18, 22],
  5.     '成绩': [85, 90, 88]
  6. }
  7. df = pd.DataFrame(data, index=['a', 'b', 'c'])
  8. print(df)
  9. print(df.axes)
复制代码

3.10、 ndim

        返回DataFrame的维度数。对于标准的二维DataFrame,这个值通常是2。
  1. import pandas as pd
  2. data = {
  3. '姓名': ['小明', '小红', '小刚'],
  4. '年龄': [20, 18, 22],
  5. '成绩': [85, 90, 88]
  6. }
  7. df = pd.DataFrame(data, index=['a', 'b', 'c'])
  8. print(df)
  9. print(df.ndim)
复制代码

3.11 、attrs

        允许用户存储DataFrame的元数据,它是一个字典,可以用来存储任意与 DataFrame相关的额外信息。
  1. import pandas as pd
  2. data = {
  3.     '姓名': ['小明', '小红', '小刚'],
  4.     '年龄': [20, 18, 22],
  5.     '成绩': [85, 90, 88]
  6. }
  7. df = pd.DataFrame(data, index=['a', 'b', 'c'])
  8. print(df)
  9. df.attrs['creator'] = '哈哈哈哈哈哈哈哈哈哈哈'
  10. df.attrs['created_at'] = '2025-3-8'
  11. print(df.attrs)
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表