import pandas as pd
排序-sort
ser = pd.Series(list(“CAB”),index=[2,1,3])
ser
2 C
1 A
3 B
dtype: objectser.sort_index()
1 A
2 C
3 B
dtype: objectser.sort_index(ascending=False) #降序排列
3 B
2 C
1 A
dtype: objectser.sort_values()
1 A
3 B
2 C
dtype: objectser.sort_values(ascending=False)
2 C
3 B
1 A
dtype: object带None值一直排序在最后
#二维数据
arr = []
arr = [[9,4,3],[3,6,7],[4,5,6]]
df = pd.DataFrame(arr,index=[0,2,1],columns=list(“cab”))
df
c a b
0 9 4 3
2 3 6 7
1 4 5 6#索引排序
df.sort_index()
c a b
0 9 4 3
1 4 5 6
2 3 6 7df.sort_index(axis=1)
a b c
0 4 3 9
2 6 7 3
1 5 6 4df.sort_values(by=‘c’)
c a b
2 3 6 7
1 4 5 6
0 9 4 3df.sort_values(by=[‘c’,‘a’]) #先排C列,在排A列
c a b
2 3 6 7
1 4 5 6
0 9 4 3#rank
#排名
df.rank()
c a b
0 3.0 1.0 1.0
2 1.0 3.0 3.0
1 2.0 2.0 2.0df.rank(method=‘first’) #默认average,还有max,min
c a b
0 3.0 1.0 1.0
2 1.0 3.0 3.0
1 2.0 2.0 2.0#merge 合并
import numpy as np
df1 = pd.DataFrame({‘stu_no’:[‘s1’,‘s2’,‘s1’,‘s3’,‘s1’,‘s1’,‘s2’,‘s4’,],‘score’:np.random.randint(50,100,size=8)})
df1
stu_no score
0 s1 59
1 s2 78
2 s1 54
3 s3 82
4 s1 82
5 s1 82
6 s2 56
7 s4 56df2=pd.DataFrame({‘stu_no’:[‘s1’,‘s2’,‘s3’,‘s5’],‘name’:[‘张三’,‘李四’,‘王五’,‘赵六’]})
df2
stu_no name
0 s1 张三
1 s2 李四
2 s3 王五
3 s5 赵六pd.merge(df1,df2,on=‘stu_no’)
stu_no score name
0 s1 59 张三
1 s1 54 张三
2 s1 82 张三
3 s1 82 张三
4 s2 78 李四
5 s2 56 李四
6 s3 82 王五pd.merge(df1,df2,on=‘stu_no’,how=‘left’) #以左边的df1为主
stu_no score name
0 s1 59 张三
1 s2 78 李四
2 s1 54 张三
3 s3 82 王五
4 s1 82 张三
5 s1 82 张三
6 s2 56 李四
7 s4 56 NaNpd.merge(df1,df2,on=‘stu_no’,how=‘right’) #以右边的为主
stu_no score name
0 s1 59.0 张三
1 s1 54.0 张三
2 s1 82.0 张三
3 s1 82.0 张三
4 s2 78.0 李四
5 s2 56.0 李四
6 s3 82.0 王五
7 s5 NaN 赵六pd.merge(df1,df2,on=‘stu_no’,how=‘outer’) #外连接,两边都出来
stu_no score name
0 s1 59.0 张三
1 s1 54.0 张三
2 s1 82.0 张三
3 s1 82.0 张三
4 s2 78.0 李四
5 s2 56.0 李四
6 s3 82.0 王五
7 s4 56.0 NaN
8 s5 NaN 赵六concat 数据拼接
df3 = pd.DataFrame(np.arange(1,5).reshape(2,-1))
df4 = pd.DataFrame(np.zeros((2,2)))
pd.concat(df3,df4)
Traceback (most recent call last):
File “<pyshell#38>”, line 1, in
pd.concat(df3,df4)
File “C:\Python36-32\lib\site-packages\pandas\core\reshape\concat.py”, line 225, in concat
copy=copy, sort=sort)
File “C:\Python36-32\lib\site-packages\pandas\core\reshape\concat.py”, line 241, in init
‘"{name}"’.format(name=type(objs).name))
TypeError: first argument must be an iterable of pandas objects, you passed an object of type “DataFrame”pd.concat([df3,df4])
0 1
0 1.0 2.0
1 3.0 4.0
0 0.0 0.0
1 0.0 0.0pd.concat([df3,df4],axis=1)
0 1 0 1
0 1 2 0.0 0.0
1 3 4 0.0 0.0
Pandas排序与合并
最新推荐文章于 2024-02-01 16:22:01 发布