python字典按值的大小排序_Python连载|Pandas统计基本功能(二)

本文详细介绍了Pandas的排序方法,包括按标签、按列和按值排序,以及Pandas的合并/连接操作,如merge函数的内、外、左、右连接,concat函数的行、列连接,以及append函数的使用。同时,文章还涵盖了DataFrame的迭代和字符串处理功能。
摘要由CSDN通过智能技术生成

上一期介绍了部分Pandas统计基本功能的内容,那么本期将继续对剩余的统计基本功能内容进行介绍,其中包括pandas排序、合并与连接、pandas迭代及pandas字符串和文本数据操作。

ed168f4ea47747841d89acaa3cde6b9d.png

1 pandas排序

Pandas有两种排序方式,分别是:

  • 按标签

  • 按实际值

下面我们先生成一些案例数据

# 生成样例数据

#该df中,标签和值未排序

df1=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],columns=['col2','col1'])

1.1 按标签排序

使用sort_index()方法,通过传递axis参数和排序顺序,可以对DataFrame进行排序。

sorted_df0 = df1.sort_index() # 默认情况下,按照升序对行标签进行排序

sorted_df1 = df1.sort_index(ascending=False) # 降序排序

print(sorted_df0)

print(sorted_df1)

输出结果:

#sorted_df0

col2 col1

0 1.944841 -0.140687

1 -0.702086 1.165355

2 0.951864 0.147956

3 -0.299716 -0.317387

4 0.002298 -0.329066

5 0.286862 -0.591395

6 -0.920285 -0.637322

7 0.631418 -0.224196

8 -1.217174 0.622308

9 -0.091426 1.068749

#sorted_df1

col2 col1

9 -0.091426 1.068749

8 -1.217174 0.622308

7 0.631418 -0.224196

6 -0.920285 -0.637322

5 0.286862 -0.591395

4 0.002298 -0.329066

3 -0.299716 -0.317387

2 0.951864 0.147956

1 -0.702086 1.165355

0 1.944841 -0.140687

1.2 按列排序

通过传递axis的参数值为0或1,可以对列标签进行排序。

sorted_df3 = df1.sort_index(axis = 1) # 根据列标签排序

print(sorted_df3)

输出结果:

#sorted_df3

col1 col2

1 1.165355 -0.702086

4 -0.329066 0.002298

6 -0.637322 -0.920285

2 0.147956 0.951864

3 -0.317387 -0.299716

5 -0.591395 0.286862

9 1.068749 -0.091426

8 0.622308 -1.217174

0 -0.140687 1.944841

7 -0.224196 0.631418

1.3 按值排序

sort_values()是按值排序的方法。

unsorted_df = pd.DataFrame({ 'col1':[2,1,1,1],'col2':[1,3,2,4]})

sorted_df0 = unsorted_df.sort_values(by='col1') # 根据列col1的值来排序

sorted_df1 = unsorted_df.sort_values(by=['col1','col2']) #根据多列的值大小来排序 ,当col1列的值相同时,再考虑col2列的值大小

print(sorted_df0)

print(sorted_df1)

输出结果:

#sorted_df0

col1 col2

1 1 3

2 1 2

3 1 4

0 2 1

#sorted_df1

col1 col2

2 1 2

1 1 3

3 1 4

0 2 1

此外,sort_values()提供了不同的排序算法,如mergesort,heapsort和quicksort。其中Mergesort是唯一稳定的算法

sorted_df2 = unsorted_df.sort_values(by='col1',kind='mergesort')

print(sorted_df2)

输出结果:

#sorted_df2

col1 col2

1 1 3

2 1 2

3 1 4

0 2 1

2 Pandas合并/连接

Pandas中的连接操作,与SQL等关系数据库非常相似。

2.1 merge函数

pd.merge(left, right, how='inner', on=None, lefton=None, righton=None,leftindex=False, rightindex=False, sort=True)

  • left: 一个DataFrame对象

  • right: 另一个DataFrame对象

  • on: 用于连接的列名,必须在左和右DataFrame对象中存在的列

  • left_on: 左侧DataFrame用作连接的键

  • right_on: 右边的DataFrame用作连接的键

  • left_index: 如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值