pandas的数据结构DataFrame详解

时间:2022-11-29 21:27:20

python高级应用与数据分析学习笔记 12

1、DataFrame的创建方式

1.1 通过二维数组创建
import numpy as np
import pandas as pd

# 1、DataFrame的创建方式
# 1.1 通过二维数组创建
arr = [['张伊曼', 100], ['张诗诗', 90], ['张巧玲', 80]]
df0 = pd.DataFrame(arr)
print("df0===========================")
print(df0)

pandas的数据结构DataFrame详解

1.2 通过字典创建
# 1.2 通过字典创建
dict0 = {
    'android': [90, 80, 60],
    'java': [99, 78, 89],
    'python': [98, 82, 85],
    'c': 80
}
df0 = pd.DataFrame(dict0)
print("df0===========================")
print(df0)

pandas的数据结构DataFrame详解

2、DataFrame的基本属性

# 2、基本属性
arr = [['张伊曼', 100], ['张诗诗', 90], ['张巧玲', 80]]
df0 = pd.DataFrame(arr)
print("df0===========================")
print(df0)

print("df0.index===========================")  #如果不指定index的值,就会从默认0开始
print(df0.index)

print("df0.columns===========================")  #如果不指定columns的值,就会从默认0开始
print(df0.columns)

print("df0.dtypes===========================")   #以列为单位算起
print(df0.dtypes)

print("df0.values===========================")
print(df0.values)

print("更换index、columns的值===========================")
df0 = pd.DataFrame(arr,index=['第一行','第二行','第三行'],columns=['name','分散'])
#df0.index = ['第一行', '第二行', '第三行']  #等同于以这种方式更改index的值
print(df0)

pandas的数据结构DataFrame详解

3、DataFrame的值的获取

介绍几个注意点:
1)索引对象,不管是Series还是DataFrame对象,都有索引对象,他们的自动对齐功能也是通过索引实现的
2)DataFrame可以直接通过列索引获取指定列的数据
3)如果需要获取指定行的数据的话,需要通过ix方法来获取对应行索引的行数据
4)DataFrame可以切片操作

# 3、DataFrame的值的获取
dict0 = {
    'android': [90, 80, 60],
    'java': [99, 78, 89],
    'python': [98, 82, 85],
    'c': 80
}
df0 = pd.DataFrame(dict0)
df0.index = ['张伊曼', '张诗诗', '张巧玲']
print("df0===========================")
print(df0)

# print(df0['张伊曼']['android']) #注意:先行后列获取会报错

print("单个的值的获取===========================")
print(df0['android']['张伊曼'])    #通过这种方式获取单个的值

print("一行值的获取===========================")
print(df0.ix[0])

print("多行值的获取===========================")
print(df0.ix[:2])

print("任意多行值的获取===========================")
print(df0.ix[:2, :2])

print("一列值的获取===========================")
print(df0['android'])

pandas的数据结构DataFrame详解

4、 修改值 新增列 新增行

注意:
1)numpy是不能加新行新列的 但是DataFrame可以
2)修改某个具体对象的值,即可以先列后行 也可以先行后列 最好是先列后行可以自动改变对象的数据类型

# 4、 修改值 新增列 新增行
dict0 = {
    'android': [90, 80, 60],
    'java': [99, 78, 89],
    'python': [98, 82, 85],
    'c': 80
}
df0 = pd.DataFrame(dict0)
df0.index = ['张伊曼', '张诗诗', '张巧玲']
print("df0===========================")
print(df0)

print("修改单个值===========================")
df0['android']['张伊曼'] = 100
print(df0)

print("修改一列值===========================")
df0['android'] = [100, 100, 100]
print(df0)

print("新增列===========================")
df0['c++'] = np.nan
print(df0)

print("新增行===========================")
df0.ix['思思'] = np.nan
print(df0)

pandas的数据结构DataFrame详解