【数据分析】认识Pandas:DataFrame和Series结构、属性

数据分析工具——Pandas

认识Pandas

Pandas 是 Python 语言的一个扩展程序库,用于 数据挖掘数据分析,同时也提供 数据清洗功能。

pandas(panel data & data analysis),是基于 numpy(提供高性能的矩阵运算)专门用于数据分析的工具,是一个强大的分析结构化数据(表格数据)的工具集;

Pandas所有的操作都基于两种结构: DataFrame结构 和 Series结构

Dataframe 结构

DataFrame 是 Pandas 中的一个 表格型 的数据结构,是一个二维的数组结构,类似 二维数组。包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等)。

表格有三部分组成,表头(列索引)、行名称(行索引)、数据元素部分。

【数据分析】认识Pandas:DataFrame和Series结构、属性

; DataFrame 构造方法

pandas.DataFrame( data, index, columns, dtype, copy)

  • data:数据(array-like 类型:可以是ndarray、series, map, lists, dict 等类型)。
  • index:行索引,如果不指定行索引—默认给一个0、1、2、3、… 这样的序号行索引。
  • columns:列索引 ,如果不指定列索引—默认给一个0、1、2、3、… 这样的序号列索引。
  • dtype:数据类型。
  • copy:拷贝数据,默认为 False。
方式 1:使用列表 逐个传入行索引、列索引和 数据元素
df = pd.DataFrame(

    data=[
        ['zs', 19, 1],
        ['ls', 20, 1],
        ['ww', 19, 2]
    ],
    index=['stu0', 'stu1', 'stu2'],
    columns=['name', 'age', 'group']

)
print('df:\n', df)
print('df_type:\n', type(df))
"""
df:
      name  age  group
stu0   zs   19      1
stu1   ls   20      1
stu2   ww   19      2
df_type:

"""

方式 2:借助字典
df = pd.DataFrame(

    data={
        'name': ['zs', 'ls', 'ww'],
        'age': [18, 19, 29],
        'group': [1, 1, 2]
    },
    index=['stu0', 'stu1', 'stu2'],
)
print('df:\n', df)
print('df_type:\n', type(df))
"""
df:
      name  age  group
stu0   zs   18      1
stu1   ls   19      1
stu2   ww   29      2
df:

"""

方式 3:由 ndarray 转化为 dataframe结构
import numpy
values = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print('values:\n', values)
print('values_type:', type(values))
"""
values:
 [[1 2 3 4]
 [5 6 7 8]]
values_type:

"""
df = pd.DataFrame(
    data=values,
    columns=['一','二','三','四'],
)
print('df:\n', df)
print('df_type:\n', type(df))
"""
df:
   一  二  三  四
0  1  2  3  4
1  5  6  7  8
df_type:

"""

注:关于参数元素缺失

df = pd.DataFrame(
    data=[
        ['zs', 19, 1],
        ['ls', 20, 1],
        ['ww', 19]
    ],
    index=['stu0', 'stu1', 'stu2'],
    columns=['name', 'age', 'group']
)
print('df:\n', df)
"""
df:
      name  age  group
stu0   zs   19    1.0
stu1   ls   20    1.0
stu2   ww   19    NaN
"""

dtype参数

data=[
    ['zs', 19, 1],
    ['ls', 20, 1],
    ['ww', 19, 2]
],
df = pd.DataFrame(
    data=data
    columns=['name', 'age', 'group'],
)
print('dtypes:\n', df.dtypes)
'''
dtypes:
 name     object
age       int64
group     int64
dtype: object
'''

df = pd.DataFrame(
    data=data
    columns=['name', 'age', 'group'],
    dtype="int32"
)
print('dtypes:\n', df.dtypes)
'''
df:
 name     object
age       int32
group     int32
dtype: object
'''

df = pd.DataFrame(
    data=data
    columns=['name', 'age', 'group'],
    dtype=numpy.

)
print('dtypes:\n', df.dtypes)
'''
df:
 name     object
age       int32
group     int32
dtype: object
'''

Series 结构

Series 类似表格中的一个列(column),类似于 一维数组,可以保存任何数据类型。Series 由 索引(index)和 组成

DataFrame结构就是 由多个Series结构组成的:


df = pd.DataFrame(
    data=[
        ['zs', 19, 1],
        ['ls', 20, 1],
        ['ww', 19, 2]
    ],
    index=['stu0', 'stu1', 'stu2'],
    columns=['name', 'age', 'group'],
)
print('name:\n', df["name"])
print("*"*20)
print('name_type:\n', type(df["name"]))
'''
name:
 stu0    zs
stu1    ls
stu2    ww
Name: name, dtype: object
********************
name_type:

'''

Series 构造方法

pandas.Series( data, index, dtype, name, copy)

Serise的参数与Dataframe的参数相似:

  • data:一组数据(array-like 类型)。
  • index:数据索引标签,不指定默认从 0 开始。可指定array-like 类型需和data长度相同。
  • dtype:数据类型,默认会自己判断。
  • name:设置名称(str 类型), 相当于Dataframe结构指定多列名称的Columns 变为单列的name
  • copy:拷贝数据,默认为 False。
df= pd.Series([1, 2, 3])
print("df:\n", df)
'''
df:
0    1
1    2
2    3
dtype: int64
'''

se = pd.Series(
    data={'zs': 17, 'ls': '18', 'ww': 18},

    index=['zs', 'ls', 'ww', 'jj'],

)
print('se:\n',se)
print('se_type:\n',type(se))
'''
se:
 zs     17
ls     18
ww     18
jj    NaN
dtype: object
se_type:

'''

DataFrame和Series属性

import pandas as pd

df = pd.DataFrame(
    data=[
        ['zs', 19, 1],
        ['ls', 20, 1],
        ['ww', 19, 2]
    ],
    index=['stu0', 'stu1', 'stu2'],
    columns=['name', 'age', 'group']
)
print('df:\n', df)
print('df_type:\n', type(df))

print('ndim:', df.ndim)
print('shape:', df.shape)
print('size:', df.size)

print('dtypes:\n', df.dtypes)

print('index:', df.index)
print('columns:', df.columns)
print('values:\n', df.values)
print('values_type:\n', type(df.values))

print("-"*80)

se = df['name']
print('se:\n', se)
print('se:\n', type(se))

print('ndim:', se.ndim)
print('shape:', se.shape)
print('size:', se.size)
print('name:', se.name)

print('dtype:', se.dtype)
print('dtypes:', se.dtypes)

print('index:',se.index)
print('values:',se.values)

【数据分析】认识Pandas:DataFrame和Series结构、属性

Original: https://blog.csdn.net/weixin_45760274/article/details/123380834
Author: 胡桃の壶
Title: 【数据分析】认识Pandas:DataFrame和Series结构、属性

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/673958/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球