Pandas的基本功能
目录
#查看每列数据类型,object为通用数据类型,一般某列中有多种数据类型,或者全为str,则类型为object。默认int、float类型的位数为操作系统位数。df.dtypes
1. pandas常用基本功能
DataFrame() 创建一个DataFrame对象
df.values 返回ndarray类型的对象
df.shape 返回行列数
df.index 获取行索引
df.set_index 设置索引
df.reset_index 重制索引
df.columns 获取列索引
df.rename 重新设置列名
df.dtypes 查看每列数据类型
df.axes 获取行及列索引
df.T 行与列对调
df.info() 打印DataFrame对象的信息
df.head(i) 显示前 i 行数据
df.tail(i) 显示后 i 行数据
df.count() # 返回每一列中的非空值的个数
df.value_counts() #按值计数
df.unique() 唯一去从
df.describe() 查看数据按列的统计信息
df.sum() # 返回每一列的和, 无法计算返回空, 下同
df.sum(numeric_only=True) # numeric_only=True代表只计算数字型元素, 下同
df.max() # 返回每一列的最大值
df.min() # 返回每一列的最小值
df.argmax() # 返回最大值所在的自动索引位置
df.argmin() # 返回最小值所在的自动索引位置
df.idxmax() # 返回最大值所在的自定义索引位置
df.idxmin() # 返回最小值所在的自定义索引位置
df.mean() # 返回每一列的均值
df.median() # 返回每一列的中位数
df.var() # 返回每一列的方差
df.std() # 返回每一列的标准差
df.isnull() # 检查df中空值, NaN为True, 否则False, 返回一个布尔数组
df.notnull() # 检查df中空值, 非NaN为True, 否则False, 返回一个布尔数组
#######################################
使用pd.read_csv读取数据
>>> import pandas as pd
>>> fpath = "/lianxi/datas/read_test.txt"
>>> df = pd.read_csv(fpath)
>>> df
date prov isp pv uv
0 2020-04-26 hunan cmnet 2000 1000
1 2020-04-26 hunan cmnet 3000 1500
2 2020-04-26 hunan cmcc 4000 1000
3 2020-04-26 hubei ctc 2500 1000
4 2020-04-26 hubei cmcc 2000 1000
5 2020-04-26 hubei ctc 2100 1600
6 2020-04-27 hunan cmnet 4000 1700
7 2020-04-27 hunan cmnet 3200 1500
8 2020-04-27 hunan cmcc 2800 1600
9 2020-04-27 hubei ctc 2600 1400
10 2020-04-27 hubei cmcc 3800 1900
11 2020-04-27 hubei ctc 2400 1900
>>>
#######################################
1.1 查看信息类函数
# 查看前几行数据
df.values
# 查看前几行数据
df.values
array([['2020-04-26', 'hunan', 'cmnet', 2000, 1000],
['2020-04-26', 'hunan', 'cmnet', 3000, 1500],
['2020-04-26', 'hunan', 'cmcc', 4000, 1000],
['2020-04-26', 'hubei', 'ctc', 2500, 1000],
['2020-04-26', 'hubei', 'cmcc', 2000, 1000],
['2020-04-26', 'hubei', 'ctc', 2100, 1600],
['2020-04-27', 'hunan', 'cmnet', 4000, 1700],
['2020-04-27', 'hunan', 'cmnet', 3200, 1500],
['2020-04-27', 'hunan', 'cmcc', 2800, 1600],
['2020-04-27', 'hubei', 'ctc', 2600, 1400],
['2020-04-27', 'hubei', 'cmcc', 3800, 1900],
['2020-04-27', 'hubei', 'ctc', 2400, 1900]], dtype=object)
#######################################
# 查看数据的形状,返回(行数、列数)
df.shape
>>> df.shape
(12, 5)
#######################################
#查看行索引
df.index
>>> df.index
RangeIndex(start=0, stop=12, step=1)
#######################################
#设置索引
df.set_index 设置索引
>>> df2 = df.set_index('date')
>>> df2
prov isp pv uv
date
2020-04-26 hunan cmnet 2000 1000
2020-04-26 hunan cmnet 3000 1500
2020-04-26 hunan cmcc 4000 1000
2020-04-26 hubei ctc 2500 1000
2020-04-26 hubei cmcc 2000 1000
2020-04-26 hubei ctc 2100 1600
2020-04-27 hunan cmnet 4000 1700
2020-04-27 hunan cmnet 3200 1500
2020-04-27 hunan cmcc 2800 1600
2020-04-27 hubei ctc 2600 1400
2020-04-27 hubei cmcc 3800 1900
2020-04-27 hubei ctc 2400 1900
#######################################
df.reset_index 重制索引
>>> df2.reset_index(inplace=True,drop=True)
>>> df2
prov isp pv uv
0 hunan cmnet 2000 1000
1 hunan cmnet 3000 1500
2 hunan cmcc 4000 1000
3 hubei ctc 2500 1000
4 hubei cmcc 2000 1000
5 hubei ctc 2100 1600
6 hunan cmnet 4000 1700
7 hunan cmnet 3200 1500
8 hunan cmcc 2800 1600
9 hubei ctc 2600 1400
10 hubei cmcc 3800 1900
11 hubei ctc 2400 1900
#######################################
#获取列索引
df.columns
>>> df.columns
Index(['date', 'prov', 'isp', 'pv', 'uv'], dtype='object')
#######################################
重新设置列表名
>>> df2 = df
>>> df2.columns=['a','b','c','d','e']
>>> df2
a b c d e
0 2020-04-26 hunan cmnet 2000 1000
1 2020-04-26 hunan cmnet 3000 1500
2 2020-04-26 hunan cmcc 4000 1000
3 2020-04-26 hubei ctc 2500 1000
4 2020-04-26 hubei cmcc 2000 1000
5 2020-04-26 hubei ctc 2100 1600
6 2020-04-27 hunan cmnet 4000 1700
7 2020-04-27 hunan cmnet 3200 1500
8 2020-04-27 hunan cmcc 2800 1600
9 2020-04-27 hubei ctc 2600 1400
10 2020-04-27 hubei cmcc 3800 1900
11 2020-04-27 hubei ctc 2400 1900
#######################################
重新设置列表名
>>> df2.rename(columns={'a':'日期','b':'省份','c':'运营商','d':'pv','e':'uv'},inplace = True)
>>> df2
日期 省份 运营商 pv uv
0 2020-04-26 hunan cmnet 2000 1000
1 2020-04-26 hunan cmnet 3000 1500
2 2020-04-26 hunan cmcc 4000 1000
3 2020-04-26 hubei ctc 2500 1000
4 2020-04-26 hubei cmcc 2000 1000
5 2020-04-26 hubei ctc 2100 1600
6 2020-04-27 hunan cmnet 4000 1700
7 2020-04-27 hunan cmnet 3200 1500
8 2020-04-27 hunan cmcc 2800 1600
9 2020-04-27 hubei ctc 2600 1400
10 2020-04-27 hubei cmcc 3800 1900
11 2020-04-27 hubei ctc 2400 1900
>>>
#######################################
#查看每列数据类型,object为通用数据类型,一般某列中有多种数据类型,或者全为str,则类型为object。默认int、float类型的位数为操作系统位数。
df.dtypes
>>> df.dtypes
日期 object
省份 object
运营商 object
pv int64
uv int64
dtype: object
#######################################
df.axes 获取行及列索引
>>> df.axes
[RangeIndex(start=0, stop=12, step=1), Index(['日期', '省份', '运营商', 'pv', 'uv'], dtype='object')]
#######################################
df.T 行与列对调
>>> df.T
0 1 2 ... 9 10 11
日期 2020-04-26 2020-04-26 2020-04-26 ... 2020-04-27 2020-04-27 2020-04-27
省份 hunan hunan hunan ... hubei hubei hubei
运营商 cmnet cmnet cmcc ... ctc cmcc ctc
pv 2000 3000 4000 ... 2600 3800 2400
uv 1000 1500 1000 ... 1400 1900 1900
[5 rows x 12 columns]
>>>
#######################################
df.head(i) 显示前 i 行数据
>>> df.head(5)
日期 省份 运营商 pv uv
0 2020-04-26 hunan cmnet 2000 1000
1 2020-04-26 hunan cmnet 3000 1500
2 2020-04-26 hunan cmcc 4000 1000
3 2020-04-26 hubei ctc 2500 1000
4 2020-04-26 hubei cmcc 2000 1000
>>>
#######################################
df.tail(i) 显示后 i 行数据
>>> df.tail(5)
日期 省份 运营商 pv uv
7 2020-04-27 hunan cmnet 3200 1500
8 2020-04-27 hunan cmcc 2800 1600
9 2020-04-27 hubei ctc 2600 1400
10 2020-04-27 hubei cmcc 3800 1900
11 2020-04-27 hubei ctc 2400 1900
#######################################
df.describe() 查看数据按列的统计信息
>>> df.describe()
pv uv
count 12.000000 12.000000
mean 2866.666667 1425.000000
std 743.863787 346.738046
min 2000.000000 1000.000000
25% 2325.000000 1000.000000
50% 2700.000000 1500.000000
75% 3350.000000 1625.000000
max 4000.000000 1900.000000
#######################################
1.2 数据统计类函数
df.count() 返回每一列中的非空值的个数
>>> df.count()
日期 12
省份 12
运营商 12
pv 12
uv 12
dtype: int64
>>> df['省份'].value_counts()
hunan 6
hubei 6
Name: 省份, dtype: int64
>>> df['省份'].unique()
array(['hunan', 'hubei'], dtype=object)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通