本文实例讲述了Python3.5Pandas模块之DataFrame用法。分享给大家供大家参考,具体如下:1、DataF
本文实例讲述了Python3.5 Pandas模块之DataFrame用法。分享给大家供大家参考,具体如下:
1、DataFrame的创建
(1)通过二维数组方式创建
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
#1.DataFrame通过二维数组创建
print("======DataFrame直接通过二维数组创建======")
d1 = DataFrame([["a","b","c","d"],[1,2,3,4]])
print(d1)
print("======DataFrame借助array二维数组创建======")
arr = np.array([
["jack",78],
["lili",86],
["amy",97],
["tom",100]
])
d2 = DataFrame(arr,index=["01","02","03","04"],columns=["姓名","成绩"])
print(d2)
print("========打印行索引========")
print(d2.index)
print("========打印列索引========")
print(d2.columns)
print("========打印值========")
print(d2.values)
运行结果:
======DataFrame直接通过二维数组创建====== 0 1 2 3 0 a b c d 1 1 2 3 4 ======DataFrame借助array二维数组创建====== 姓名 成绩 01 jack 78 02 lili 86 03 amy 97 04 tom 100 ========打印行索引======== Index(['01', '02', '03', '04'], dtype='object') ========打印列索引======== Index(['姓名', '成绩'], dtype='object') ========打印值======== [['jack' '78'] ['lili' '86'] ['amy' '97'] ['tom' '100']]
(2)通过字典方式创建
#2.DataFrame通过字典创建,键作为列索引,键值作为数据值,行索引值自动生成
data = {
"apart":['1101',"1102","1103","1104"],
"profit":[2000,4000,5000,3500],
"month":8
}
d3 = DataFrame(data)
print(d3)
print("========行索引========")
print(d3.index)
print("========列索引========")
print(d3.columns)
print("========数据值========")
print(d3.values)
运行结果:
apart month profit 0 1101 8 2000 1 1102 8 4000 2 1103 8 5000 3 1104 8 3500 ========行索引======== RangeIndex(start=0, stop=4, step=1) ========列索引======== Index(['apart', 'month', 'profit'], dtype='object') ========数据值======== [['1101' 8 2000] ['1102' 8 4000] ['1103' 8 5000] ['1104' 8 3500]]
2、DataFrame数据获取
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
#3.DataFrame获取数据
data = {
"apart":['1101',"1102","1103","1104"],
"profit":[2000,4000,5000,3500],
"month":8
}
d3 = DataFrame(data)
print(d3)
print("======获取一列数据======")
print(d3["apart"])
print("======获取一行数据======")
print(d3.ix[1])
print("======修改数据值======")
d3["month"] = [7,8,9,10] #修改值
d3["year"] = [2001,2001,2003,2004] #新增列
d3.ix["4"] = np.NaN
print(d3)
运行结果:
apart month profit 0 1101 8 2000 1 1102 8 4000 2 1103 8 5000 3 1104 8 3500 ======获取一列数据====== 0 1101 1 1102 2 1103 3 1104 Name: apart, dtype: object ======获取一行数据====== apart 1102 month 8 profit 4000 Name: 1, dtype: object ======修改数据值====== apart month profit year 0 1101 7.0 2000.0 2001.0 1 1102 8.0 4000.0 2001.0 2 1103 9.0 5000.0 2003.0 3 1104 10.0 3500.0 2004.0 4 NaN NaN NaN NaN
3、pandas基本功能
(1)pandas数据文件读取
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
#pandas基本操作
#1.数据文件读取
df = pd.read_csv("data.csv")
print(df)
运行结果:
name age source 0 gerry 18 98.5 1 tom 21 78.2 2 lili 24 98.5 3 john 20 89.2
(2)数据过滤获取
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
#pandas基本操作
#1.数据文件读取
df = pd.read_csv("data.csv")
print(df)
#2.数据过滤获取
columns = ["姓名","年龄","成绩"]
df.columns = columns #更改列索引
print("=======更改列索引========")
print(df)
#获取几列的值
df1 = df[columns[1:]]
print("=======获取几列的值========")
print(df1)
print("=======获取几行的值========")
print(df.ix[1:3])
#删除含有NaN值的行
df2 = df1.dropna()
print("=======删除含有NaN值的行=======")
print(df2)
运行结果:
Python3.5 Pandas模块 DataFramename age source 0 gerry 18 98.5 1 tom 21 NaN 2 lili 24 98.5 3 john 20 89.2 =======更改列索引======== 姓名 年龄 成绩 0 gerry 18 98.5 1 tom 21 NaN 2 lili 24 98.5 3 john 20 89.2 =======获取几列的值======== 年龄 成绩 0 18 98.5 1 21 NaN 2 24 98.5 3 20 89.2 =======获取几行的值======== 姓名 年龄 成绩 1 tom 21 NaN 2 lili 24 98.5 3 john 20 89.2 =======删除含有NaN值的行======= 年龄 成绩 0 18 98.5 2 24 98.5 3 20 89.2