pandas高频用法大全
Posted bitcarmanlee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas高频用法大全相关的知识,希望对你有一定的参考价值。
0 前言
pandas作为python中数据处理分析经常使用的一个库,深受大众喜欢,实际中也非常常用,下面我们就针对pandas中的一些高频使用方式进行总结。
1.创建dataframe
为了方便演示,下面所有代码均在notebook中运行。
先创建一个dataframe
import pandas as pd
df = pd.DataFrame(
'a': [1, -3, 0, 1],
'b': [-2, 0, 5, 6],
'c': [0, -1, 2, -4]
)
df
a b c
0 1 -2 0
1 -3 0 -1
2 0 5 2
3 1 6 -4
2.选取行/列
通过loc, iloc方法可以选取行/列,或者说针对行/列进行切片操作。
# 选取行,注意loc是包含了右区间
df.loc[0:2,]
a b c
0 1 -2 0
1 -3 0 -1
2 0 5 2
# 选取列
df.loc[:, ['a', 'b']]
a b
0 1 -2
1 -3 0
2 0 5
3 1 6
注意loc与iloc的区别,如果使用iloc,右区间是不包含的。
loc是通过选取行(列)标签索引数据。
而iloc通过选取行(列)位置编号索引数据。
df.iloc[0:2,]
a b c
0 1 -2 0
1 -3 0 -1
3.统计每行小于0的数量
df<0
输出结果为
a b c
0 False True False
1 True False True
2 False False False
3 False False True
然后将其转化为int类型
row_num = (df<0).astype(int).sum(axis=1)
row_num
0 1
1 2
2 0
3 1
dtype: int64
4.将所有小于0的数值赋值为-1
df[df<0]=-1
df
a b c
0 1 -1 0
1 -1 0 -1
2 0 5 2
3 1 6 -1
5.统计某列值出现的个数
df['a'].value_counts()
1 2
0 1
-1 1
Name: a, dtype: int64
6.统计某列值的占比
df['a'].value_counts(normalize=True)
1 0.50
0 0.25
-1 0.25
Name: a, dtype: float64
7.对列重命名
columns = 'a': 'A', 'b': 'B', 'c': "C"
df.rename(columns=columns, inplace=True)
df
A B C
0 1 -1 0
1 -1 0 -1
2 0 5 2
3 1 6 -1
8.对索引重命名
df.index=['r1', 'r2', 'r3', 'r4']
df
A B C
r1 1 -1 0
r2 -1 0 -1
r3 0 5 2
r4 1 6 -1
9.删除索引
df.reset_index(drop=True, inplace=True)
df
A B C
0 1 -1 0
1 -1 0 -1
2 0 5 2
3 1 6 -1
10.修改列位置
df.insert(2, 'A', df.pop('A'))
df
B C A
0 -1 0 1
1 0 -1 -1
2 5 2 0
3 6 -1 1
11.查询
df.query('C==0')
B C A
0 -1 0 1
12.模糊查询
df.insert(0, 'name', ['lucy', 'lili', 'adam', 'tracy'])
df.query('name.str.contains("l")', engine='python')
name B C A
0 lucy -1 0 1
1 lili 0 -1 -1
13.排序
df.sort_values(by=['name'],na_position='first')
name B C A
2 adam 5 2 0
1 lili 0 -1 -1
0 lucy -1 0 1
3 tracy 6 -1 1
14.删除列
df.drop('C', axis=1, inplace=True)
df
name B A
0 lucy -1 1
1 lili 0 -1
2 adam 5 0
3 tracy 6 1
以上是关于pandas高频用法大全的主要内容,如果未能解决你的问题,请参考以下文章