分层索引
In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: data = pd.Series(np.random.randn(9),
...: index=[['a', 'a', 'a', 'b', 'b', 'c', 'c', 'd', 'd'],
...: [1,2,3,1,3,1,2,2,3]])
In [4]: data
Out[4]:
a 1 0.987523
2 -0.028413
3 -1.669237
b 1 -1.312015
3 -0.407987
c 1 -0.213073
2 0.005242
d 2 1.980589
3 -0.919201
dtype: float64
In [5]: data.index
Out[5]:
MultiIndex(levels=[['a', 'b', 'c', 'd'], [1, 2, 3]],
codes=[[0, 0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 2, 0, 2, 0, 1, 1, 2]])
In [6]: data['b']
Out[6]:
1 -1.312015
3 -0.407987
dtype: float64
In [7]: data['b' : 'c']
Out[7]:
b 1 -1.312015
3 -0.407987
c 1 -0.213073
2 0.005242
dtype: float64
In [8]: data.loc[['b', 'd']]
Out[8]:
b 1 -1.312015
3 -0.407987
d 2 1.980589
3 -0.919201
dtype: float64
In [9]: data.loc[:, 2]
Out[9]:
a -0.028413
c 0.005242
d 1.980589
dtype: float64
联合与合并数据集
pandas.merge
根据一个或多个键将行进行连接。对于SQL
或其他关系型数据库的用户来说,这种方式比较熟悉,它实现的是数据库的连接操作。
pandas.concat
使对象在轴向上进行黏合或“堆叠”。
combine_first
实例方法允许将重叠的数据拼接在一起,以使用一个对象中的值填充另一个对象中的缺失值。
数据库风格的DataFrame连接
pandas
中的merge
函数主要用于将各种join
操作算法运用在你的数据上:
In [3]: df1 = pd.DataFrame({
'key' : ['b', 'b', 'a', 'c', 'a', 'a', 'b'], 'data1': range(
...: 7)})
In [4]: df1
Out[4]:
data1 key
0 0 b
1 1 b
2 2 a
3 3 c
4 4 a
5 5 a
6 6 b
In [5]: df2 =