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)
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)
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)
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'])
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)