pandas下载:pip install pandas
一、series
Series是一种类似于一维数组的对象,由数据(各种NumPy数据 类型)以及与之相关的数据标签(即索引)组成
import pandas as pd # 导包
data = [1, 2, 3] # 数组数据
series1 = pd.Series(data=data)
print(series1, type(series1)) # 结果是由数据和索引组成
print(series1[0]) # 索引取值
'''
0 1
1 2
2 3
dtype: int64 <class 'pandas.core.series.Series'>
1
'''
# 可以通过字典构建Series对象,Series对象的索引从1开始
data1 = {1: "python", 2: "java", 3: "hadoop"}
series2 = pd.Series(data=data1)
print(series2)
# 创建Series给定下标表示只根据固定Key进行取值
series3 = pd.Series(data=data1, index=[1, 3]) # index可以指定取固定索引
print(series3)
'''
1 python
2 java
3 hadoop
dtype: object
1 python
3 hadoop
dtype: object
'''
# 输出数据的最大最小值,str类型也能输出
print(series3.min())
print(series3.max())
二、Dataframe表格型数据
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)
DataFrame既有行索引也有列索引,可以看做由Series组成的字典
1、创建
import pandas as pd # 导包
# Dataframe表格型数据
# 通过字典进行创建
data2 = {"Language": ["Python", "java", "scala", "sql"],
"application": ["pySpark", "Hadoop", "Spark", "Hive"]
}
df1 = pd.DataFrame(data=data2)
print(df1)
# 通过列表进行创建 可以增加列名称
data3 = [["java", "1"], ["Python", "2"], ["scala", "3"]]
df2 = pd.DataFrame(data=data3, columns=["language", "year"]) # columns指定列名称
print(df2, type(df2))
# 创建一列数据
data4 = [[1], [2], [3]]
df3 = pd.DataFrame(data=data4,columns=["数字"])
print(df3, type(df3))
'''
Language application
0 Python pySpark
1 java Hadoop
2 scala Spark
3 sql Hive
language year
0 java 1
1 Python 2
2 scala 3 <class 'pandas.core.frame.DataFrame'>
数字
0 1
1 2
2 3 <class 'pandas.core.frame.DataFrame'>
'''
2、删除
# axis表示列,默认为0,是行
df4 = df2.drop(labels=["year"], axis=1)
print(df4) # df2本身值没有改动
# inplace 表示结果返回给当前的df2,默认false
df2.drop(labels=["year"], axis=1, inplace=True)
print(df2)
'''
language
0 java
1 Python
2 scala
language
0 java
1 Python
2 scala
'''
3、取数据
# 取数据
# 通过列进行取值,取出以后依旧是一个 Series
print(df1["application"], type(df1["application"]))
# 通过.+列名获取一列数据
print(df1.Language, type(df1.Language))
# 如何获取一行数据
print(df1.loc[0]) # 取固定下标的数据
print(df1.head()) # 默认从前取5行数据
print(df1.tail()) # 默认从后取5行数据
4、过滤数据
# 过滤数据
data5 = {"name": ["张老师", "王同学", "李同学"], "age": [24, 18, 19]}
df5 = pd.DataFrame(data=data5)
print(df5)
# 获取年龄小于20的数据
print(df5[df5["age"] < 20])
# 获取汇总
print(df5.describe())
'''
name age
0 张老师 24
1 王同学 18
2 李同学 19
name age
1 王同学 18
2 李同学 19
age
count 3.000000
mean 20.333333
std 3.214550
min 18.000000
25% 18.500000
50% 19.000000
75% 21.500000
max 24.000000
'''
5、读取文件
# 通过pandas读取文件
df6 = pd.read_csv("D:\pythonproject\demo01\data\students.txt", names=["id", "name", "age", "gender", "clazz"])
print(df6)
print(df6.head(100)) # 默认从前取5行数据
print(df6.tail()) # 默认从后取5行数据