Pandas库的基础数据类型

Pandas提供了两种核心数据结构:SeriesDataFrame,均基于NumPy数组构建,具备高效的数值计算能力。

DataFrame

DataFrame(数据框)就是excel表(多个Series的拼接)

读取数据

创建一个DataFrame并打印输出:

python 复制代码
import pandas as pd

df_1 = pd.DataFrame({'age':[10,11,12],
                     'name':['tim', 'tom', 'rose'],
                     'income':[100,200,300]},
                     index=['lisi', 'zhangsan', 'wangwu'])
print(df_1)

运行结果如下:

dataframe的属性:

python 复制代码
#行索引
df_1.index
#列名
df_1.columns
#值
df_1.values

读取name这一列:

python 复制代码
df_1 = pd.DataFrame({'age':[10,11,12],
                     'name':['tim', 'tom', 'rose'],
                     'income':[100,200,300]})
print(df_1)
print(df_1.name)

运行结果 :

排序和值替换

创建一个表格:

python 复制代码
import pandas as pd

dic = {'name': ['kiti', 'beta', 'peter', 'tom'],
          'age': [20, 18, 35, 21],
          'gender': ['f', 'f', 'm', 'm']}
df = pd.DataFrame(dic)
print(df)

排序:

python 复制代码
df = df.sort_values(by=['age'])
df = df.sort_values(by=['age'], ascending=False)

值替换:

python 复制代码
a = df['gender']
b = a.replace(['m', 'f'], ['male', 'female'])
df['gender'] = b
print('d')

运行结果:

Series

Series:(系列)可以看做竖起来的list

python 复制代码
import pandas as pd

#生成第一个Series[按照默认的index]
s_1 = pd.Series([1,2,3,4,5])
print(s_1)

#自定义index
s_2 = pd.Series([1,2,3,4,5], index=['a', 'b', 'c', 'd', 'e'])
print(s_2)

s_3 = pd.Series(['Lily', "Rose", "Jack"])
print(s_3)

#Series的一些属性
s_1.index
s_2.index
s_1.values
s_3.values

生成一个series对象

python 复制代码
import pandas as pd

s_1 = pd.Series([1,2,3,4,5], 
                index=['a', 'b', 'c', 'd', 'e'])

s_2 = pd.Series(['lily', 'rose', 'jack'])

查找:

1、通过标签访问

python 复制代码
#访问某个元素
print(s_1['d'])
#访问多个元素[Series的切片]
print(s_1['a':'d'])
#访问多个元素
print(s_1[['a', 'd']])

2、通过索引访问

python 复制代码
print(s_2[2])
print(s_2[0:2])
print(s_2[[0, 2]])

print(s_1[4])

删除:

python 复制代码
s_1 = s_1.drop('a')
#判断一下某个值是否在Series里面
print('jim' != s_2.values)

修改:

python 复制代码
#改
s_2[0] = 'Peter'

创建series

python 复制代码
dic_1 = {"name1": "Peter", "name2":"tim", 
"name3":"rose"}
s_4 = pd.Series(dic_1)
print(s_4)

重置索引

python 复制代码
s_4.index = range(0, len(s_4))
print('1')

数据框查询的两种方法

loc()方法和 iloc()方法

生成一个指定日期:

python 复制代码
import pandas as pd
import numpy as np
#生成指定日期
# datas = pd.date_range('20180101', periods=5)#产生一个时间数据,5个
df = pd.DataFrame(
        np.arange(30).reshape(5,6),index=['20180101','20180102','20180103','20180104','20180105'],
        columns=['A','B','C','D','E','F'])

loc()方法

df.loc[x, y]【标签索引】

python 复制代码
#打印某个值
print(df.loc['20180103', 'B'])
#打印某列值
print(df.loc[:,'B'])
print(df.loc['20180103':,'B'])
print(df.loc['20180103':,['B', 'D']])
#打印某行值
print(df.loc['20180101', :])
#打印某些行
print(df.loc['20180103':,:])

iloc()方法

位置索引

python 复制代码
#获取某个数据
print(df.iloc[1,2])
#获取某列
print(df.iloc[:,2])
#获取某几列
print(df.iloc[:,[1,3]])
#获取某行
print(df.iloc[1,:])
#获取某些行
print(df.iloc[[1,2,4],:])

简单操作DataFrame

创建一个DataFrame:

python 复制代码
import pandas as pd

df = pd.DataFrame(
        {'age':[10,11,12],
        'name':['tim', 'tom', 'rose'],
        'income':[100,200,300]},
        index=['person1', 'person2', 'person3'])
print(df

修改列名:

python 复制代码
a= df.columns
df.columns = range(0, len(df.columns))
print(df.columns)

修改行名:

python 复制代码
print(df.index)
df.index = range(0,len(df.index))
print(df.index)

在最后添加一列:

python 复制代码
df['pay'] = [20, 30, 40]
print(df)

增加一行:

python 复制代码
df.loc['person4', ['age', 'name', 'income']] = [20, 'kitty', 200]
print(df)

访问DataFrame

访问某列:

python 复制代码
print(df.name)
a = df.name
b = df['name']

访问某些列:

python 复制代码
print(df[['age', 'name']])

访问某行:

python 复制代码
print(df[0:2])

使用loc访问:

python 复制代码
print(df.loc[['person1', 'person3']])

访问某个值:

python 复制代码
print(df.loc['person1', 'name'])

删除

直接在原数据上删除

python 复制代码
del df['age']
print(df)

删除列

python 复制代码
data = df.drop('name', axis=1, inplace=False)
print(data)

解释:表示从 DataFrame df 中删除名为 'name' 的列

axis=1 表示删除的是列(如果是 axis=0 则表示删除行)

inplace=False 表示不直接在原 DataFrame 上修改,而是返回一个删除了 'name' 列的新 DataFrame

删除行

python 复制代码
df.drop('person3', axis=0, inplace=True)
相关推荐
Pyeako3 天前
python中pandas库的使用(超详细)
开发语言·python·pandas
ranchor6664 天前
excel+pandas使用str.contains() 的典型例子
excel·pandas
啊巴矲4 天前
小白从零开始勇闯人工智能:机器学习初级篇(pandas库)
人工智能·机器学习·pandas
Keep__Fighting5 天前
【机器学习:集成算法】
人工智能·算法·机器学习·pandas·集成学习·sklearn
Hi_kenyon5 天前
Pandas Cheatsheet I
python·pandas
万粉变现经纪人5 天前
如何解决 pip install 网络报错 403 Forbidden(访问被阻止)问题
数据库·python·pycharm·beautifulsoup·bug·pandas·pip
咚咚王者5 天前
人工智能之数据分析 Pandas:第十一章 项目实践
人工智能·数据分析·pandas
咚咚王者5 天前
人工智能之数据分析 Pandas:第十章 知识总结
人工智能·数据分析·pandas
编程设计3666 天前
pandas 中 DataFrame、mean()、groupby 和 fillna 函数的核心作用
机器学习·数据挖掘·pandas