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)
相关推荐
橙露1 天前
从零基础到实战:Python 数据分析三剑客(Pandas+NumPy+Matplotlib)核心应用指南
python·数据分析·pandas
清水白石0082 天前
手写超速 CSV 解析器:利用 multiprocessing 与 mmap 实现 10 倍 Pandas 加速
python·pandas
Hello.Reader4 天前
PyFlink 向量化 UDF(Vectorized UDF)Arrow 批传输原理、pandas 标量/聚合函数、配置与内存陷阱、五种写法一网打尽
python·flink·pandas
Hello.Reader4 天前
PyFlink Table API Data Types DataType 是什么、UDF 类型声明怎么写、Python / Pandas 类型映射一文搞懂
python·php·pandas
Hello.Reader4 天前
PyFlink Table API 用户自定义函数(UDF)通用 UDF vs Pandas UDF、打包部署、open 预加载资源、读取作业参数、单元测试
log4j·pandas
海棠AI实验室5 天前
第十六章:小项目 2 CSV → 清洗 → 统计 → 图表 → 报告输出
pandas
逻极5 天前
数据分析项目:Pandas + SQLAlchemy,从数据库到DataFrame的丝滑实战
python·mysql·数据分析·pandas·sqlalchemy
海棠AI实验室5 天前
第十七章 调试与排错:读懂 Traceback 的方法论
python·pandas·调试
kong79069285 天前
Pandas简介
信息可视化·数据分析·pandas
爱喝可乐的老王5 天前
数据分析实践--数据解析购房关键
信息可视化·数据分析·pandas·matplotlib