炫意html5
最早CSS3和HTML5移动技术网站之一

Pandas数据处理 – 拼接(concat)

Pandas 拼接(concat),前面介绍了Pandas合并,Pandas另一种数据整合操作叫做拼接(concatenation),Pandas的convat()函数实现了索引拼接的功能。

阅读本章内容前,可以先学习Pandas基础教程及Pandas数据读写。

concatenate() 函数

Numpy的 concatenate()函数就是用于数组的拼接操作。如下所示:

import numpy as np
array1 = np.array([[0,1,2],[3,4,5],[6,7,8]])
array2 = array1 + 6
print(array2)
print("------------")
print(np.concatenate([array1, array2],axis=0))
print("------------")
print(np.concatenate([array1, array2],axis=1))

输出结果如下:
Pandas 拼接(concat)

concat() 函数

Pandas库以及它的Series和DataFrame等数据结构实现了带编号的索引,Pandas的concat()函数实现了按索引拼接的功能。如下所示:

import pandas as pd
import numpy as np
ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4])
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
print(ser1)
print('------------')
print(ser2)
print('------------')
print(pd.concat([ser1, ser2]))

输出结果如下所示:

1    0.459076
2    0.102168
3    0.779139
4    0.691197
dtype: float64
------------
5    0.164705
6    0.948454
7    0.839946
8    0.835565
dtype: float64
------------
1    0.459076
2    0.102168
3    0.779139
4    0.691197
5    0.164705
6    0.948454
7    0.839946
8    0.835565
dtype: float64

concat()函数默认按照axis=0这条轴进行拼接数据,并返回Series对象。如果指定axis=1,返回结果将是DataFrame对象,如下所示:

import pandas as pd
import numpy as np
ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4])
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
print(pd.concat([ser1, ser2], axis=1))

输出结果如下:
Pandas 拼接(concat)

concat()函数默认为外连接操作,把join选项设置为inner,可以执行内连接操作,如下所示:

import pandas as pd
import numpy as np
ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4])
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
df = pd.concat([ser1, ser2], axis=1)
print(df)
print('--------')
print(pd.concat([ser1, df], axis=1, join='inner'))

输出结果如下:
Pandas 拼接(concat)

等级索引

假如我们想用于拼接的轴上创建等级索引,可以借助keys选项来完成,如下所示:

import pandas as pd
import numpy as np
ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4])
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
print(pd.concat([ser1, ser2], keys=[1,2]))

输出结果如下:
Pandas 拼接(concat)

按照axis拼接Series对象,指定的键变成拼接后得到的DataFrame对象列的名称,如下所示:

import pandas as pd
import numpy as np
ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4])
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
print(pd.concat([ser1, ser2], axis=1,keys=[1,2]))

输出结果如下:
Pandas 拼接(concat)

DataFrame 对象的拼接

前面介绍的是Series对象的拼接,DataFrame 对象的拼接方法与之相同,如下所示:

import pandas as pd
import numpy as np
frame1 = pd.DataFrame(np.random.rand(9).reshape(3,3), index=[1,2,3],columns=['A','B','C'])
frame2 = pd.DataFrame(np.random.rand(9).reshape(3,3), index=[4,5,6],columns=['A','B','C'])
print(pd.concat([frame1,frame2]))

输出结果如下:
Pandas 拼接(concat)

指定axis=1拼接数据,如下所示:

import pandas as pd
import numpy as np
frame1 = pd.DataFrame(np.random.rand(9).reshape(3,3), index=[1,2,3],columns=['A','B','C'])
frame2 = pd.DataFrame(np.random.rand(9).reshape(3,3), index=[4,5,6],columns=['A','B','C'])
print(pd.concat([frame1,frame2], axis=1))

输出结果如下:
Pandas 拼接(concat)

炫意HTML5 » Pandas数据处理 – 拼接(concat)

Java基础教程Android基础教程