当前位置:首页>python>Python DataFrame

Python DataFrame

  • 2026-10-10 18:28:18
Python DataFrame

import pandas as pd

import numpy as np

# 定义一个简单的数据集,np.nan为缺失项

data = pd.DataFrame({

    'name': ['John', 'Xiaomi', 'Zhangsan', 'Lisi'],

    'age': [28, np.nan, 35, 22],

    'gender': ['M', 'F', 'M', np.nan]

})

print(type(data))

print(data)

print(data['age'])

# 处理缺失项值

# data['age'].fillna(data['age'].mean, inplace=True)

# data['gender'].fillna(data['gender'].mode()[0], inplace=True)

# 数据转换,将性别MheF转化为0和1

data['gender'] = data['gender'].map({'M': 0, 'F': 1})

# 数据规范化,将年龄规范到0-1之间

data['age'] = (data['age'] - data['age'].min()) / (data['age'].max() - data['age'].min())

print(data)

'''

Series 一维数据结构

'''

s = pd.Series()

print(s)

# 使用默认索引,创建Series序列对象

data = np.array(['a', 'b', 'c', 'd'])

s = pd.Series(data)

print(s)

# 自定义索引标签

s = pd.Series(data, index=[100, 101, 102, 103])

print(s)

# dict创建Series对象

data = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

s = pd.Series(data)

print(s)

print(s['a'])

# Series常用属性

print(s.axes)  # 以列表的形式返回所有行索引标签

print(s.dtype)  # 返回对象的数据类型

print(s.empty)  # 返回一个空的Series对象

print(s.ndim)  # 返回输入数据的维度

print(s.size)  # 返回数据的元素数量

print(s.values)  # 以ndarrary的形式返回Serirs

print(s.index)  # 返回一个RangeIndex对象,用来描述索引的取值范围

# series常用方法

print(s.head(3))  # 返回series前n行数据,默认返回前5行

print(s.tail(2))  # 返回series后n行数据,默认后回前5行

print(s.isnull())  # 如果为值不存在或者缺失者返回true

print(s.notnull())  # 如果值不存在或者缺失则返回false

'''

DataFrame是一个表格型数据结构,既有行标签index又有列标签columns,它被成为异构数据表

所谓异构指表格中每列的数据类型可以不同

DataFrame的每一行数据可以看作一个Series结构

Dataframe结构类似excel的表格型,具有行和列,行数和列数允许增加或减少,里面的每一个数据都可以被修改

可以对行和列执行算数运算

'''

a = pd.DataFrame()  # 创建一个空的DataFrame

print(a)

a = pd.DataFrame([1, 2, 3, 4, 5, 6])  # 用单列或嵌套列来创建一个DataFrame

print(a)

a = pd.DataFrame([['a', 1], ['b', 2], ['c', 3]], columns=['name', 'age'])  # 用嵌套列表来创建一个DAtaFrame

print(a)

a = pd.DataFrame({'name': ['a', 'b', 'c'], 'age': [1, 2, 3]})  # 用字典嵌套列表来创建

print(a)

a = pd.DataFrame([{'a': 1, 'b': 2}, {'a': 2, 'b': 3, 'd': 4}])  # 用列表嵌套字典作为输入来创建DataFrame

print(a)

a = pd.DataFrame({'name': pd.Series(['a', 'b', 'c']), 'age': pd.Series([1, 2, 3])})

print(a)

print(a['name'])

a.insert(2, column='score', value=[91, 90, 98])  # 插入列

a.insert(3, column='score2', value=[95, 96, 98])  # 插入列

print(a)

del a['name']  # 使用del删除列

print(a)

a.pop('age')  # 使用婆婆方法删除列

print(a)

print(a.loc[1])  # 标签索引选取行

print(a.loc[1, 'score'])  # loc允许接收两个参数分别是行和列,参数之间用逗号分隔

print(a[1:4])  # 切片操作

a2 = pd.DataFrame([['q', 5, 78, 78]], columns=['name', 'age', 'score', 'score2'])

print(a2)

print(a.max)

print(a.min)

print(a.drop(1))  # 使用行索引标签,从dataframe中删除某一行数据

#常用属性和方法汇总

print(a.T) #行和列转置

print(a.axes) #返回一个仅以行轴标签和列轴标签为成员的列表

print(a.dtypes) #返回每列数据类型

print(a.empty) #判断数据对象是都为空

print(a.ndim) #返回数组的维度

print(a.shape)#返回一个元组,表示了dataframe维度

print(a.size) #返回dataframe中元素数量

print(a.values)#使用numppy数组来表示datafeame中的元素

print(a.head(1))#返回前n行数据

print(a.tail(1))#返回后n行数据

print(a.shift(1))#将行和列移动指定的长度

最新文章

随机文章