Pandas Series — тип данных серии

pandas

Данные типа серии серии Pandas

Эта статья официально начинает серию статей о Pandas, начиная с:Как создавать данные в пандахНачинать. Данные, созданные в Pandas, состоят из двух типов:

  • Тип серии
  • Тип кадра данных

Карта контента

Тип серии

Серия представляет собой структуру одномерного массива, которая состоит только из индекса (index) и значения (value).

Индекс серии уникален, индекс может быть как числом, так и символом, система автоматически преобразует их в тип объекта (тип символа в пандах).

Тип кадра данных

DataFrame — это двумерная структура данных, которая объединяет несколько рядов по столбцам, и каждый столбец выносится как ряд, кроме того, что у него есть индекс и значение, есть еще столбец. Рисунок ниже:

  • Индекс Индекс: 0, 1, 2, 3…….
  • Атрибуты поля: фрукт, число
  • Значение стоимости: яблоки, виноград и т. д.; 200, 300 и т. д.

библиотека импорта

Сначала импортируйте две библиотеки:

import pandas as pd
import numpy as np

Создание и эксплуатация типа серии

  • Генерируется из итерируемых списков типов, кортежей
  • Генерируется словарем python
  • Генерируется массивом numpy

генерация списка

Генерация данных серии по списку

s1 = pd.Series([7,8,9,10])
s1

# 结果
0     7
1     8
2     9
3    10
dtype: int64
s2 = pd.Series(list(range(1,8)))
s2

# 结果
0    1
1    2
2    3
3    4
4    5
5    6
6    7
dtype: int64

генерация кортежа

Следующий метод заключается в создании данных серии из кортежей.

s3 = pd.Series((7,8,9,10,11))
s3

# 结果
0     7
1     8
2     9
3    10
4    11
dtype: int64

s4 = pd.Series(tuple(range(1,8)))  #  从1到8,不包含8
s4

# 结果
0    1
1    2
2    3
3    4
4    5
5    6
6    7
dtype: int64

Создать со словарем

Ключ словаря — это индекс, а значение — это значение, соответствующее структуре Series.

dic_data = {"0":"苹果", "1":"香蕉", "2":"哈密瓜","3":"橙子"}

s5 = pd.Series(dic_data)
s5

# 结果
0     苹果
1     香蕉
2    哈密瓜
3     橙子
dtype: object

Используйте пустые массивы

s6 = pd.Series(np.arange(3,9))
s6

# 结果
0    3
1    4
2    5
3    6
4    7
5    8
dtype: int64

указать индекс (список)

Индекс по умолчанию — это значение, начинающееся с 0, и каждый индекс можно указать во время создания.

# 默认

s1 = pd.Series([7,8,9,10])
s1

# 结果
0     7
1     8
2     9
3    10
dtype: int64
s7 = pd.Series([7,8,9,10], index=["A","B","C","D"])  # 指定索引值 
s7

# 结果
A     7
B     8
C     9
D    10
dtype: int64

Указать индекс (форма словаря)

Ключи словаря как значения индекса

dic_data = {"水果1":"苹果", 
            "水果2":"香蕉", 
            "水果3":"哈密瓜",
            "水果4":"橙子"
           }

s8 = pd.Series(dic_data)
s8

# 结果
水果1     苹果
水果2     香蕉
水果3    哈密瓜
水果4     橙子
dtype: object

Посмотреть значение индекса

s8

# 结果
水果1     苹果
水果2     香蕉
水果3    哈密瓜
水果4     橙子
dtype: object
s8.index   # 查看索引值

# 结果
Index(['水果1', '水果2', '水果3', '水果4'], dtype='object')

просмотр значения

s8

# 结果
水果1     苹果
水果2     香蕉
水果3    哈密瓜
水果4     橙子
dtype: object
s8.values

# 结果
array(['苹果', '香蕉', '哈密瓜', '橙子'], dtype=object)

изменить индекс

# 新索引
index_new = ['one', 'two', 'three', 'four'] 

# 赋值
s8.index = index_new

s8
# 结果
one       苹果
two       香蕉
three    哈密瓜
four      橙子
dtype: object

Проверьте, есть ли нулевое значение

s7

# 结果
A     7
B     8
C     9
D    10
dtype: int64
s7.isnull()  # 没有空值
A    False
B    False
C    False
D    False
dtype: bool
s7.notnull()
A    True
B    True
C    True
D    True
dtype: bool

Просмотр значения индекса

s7

A     7
B     8
C     9
D    10
dtype: int64
s7["A"]  #  自定义的索引值

7
s7[0]   # 默认的数值索引

7
s7["D"]

10
s7[3]

10

Преобразование серии в словарь

s_dic = s7.to_dict()  # 转成字典形式
s_dic

{'A': 7, 'B': 8, 'C': 9, 'D': 10}
type(s_dic)   # 结果显示为字典类型

dict

Назовите индекс серии

s8

one       苹果
two       香蕉
three    哈密瓜
four      橙子
dtype: object
s8.index  # 原索引

Index(['one', 'two', 'three', 'four'], dtype='object')
s8.index.name = "水果"  # 索引命名
s8

Результат отображается как:

水果
one       苹果
two       香蕉
three    哈密瓜
four      橙子
dtype: object
s8.index   # 更改之后的索引
Index(['one', 'two', 'three', 'four'], dtype='object', name='水果')

Изменить значения серии

s8

# 结果为
水果
one       苹果
two       香蕉
three    哈密瓜
four      橙子
dtype: object
s8["three"] = "西瓜"  # 等价于s8[2] = "西瓜"

s8

Измененное значение:

水果
one      苹果
two      香蕉
three    西瓜
four     橙子
dtype: object

Структура Series преобразуется в структуру DataFrame.

s8

水果
one      苹果
two      香蕉
three    西瓜
four     橙子
dtype: object

image-20210428160428033

В процессе преобразования s8 в DataFrame участвуют 3 функции:

  • to_frame: конвертировать в DataFrame
  • reset_index: сброс индекса типа DataFrame
  • переименовать: свойства поля DataFrame сбрасываются

Соответствующее содержимое DataFrame будет подробно объяснено в следующем разделе, так что следите за обновлениями!