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
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值