精選23個Pandas函數(shù)

公眾號:尤而小屋
作者:Peter
編輯:Peter

大家好骤竹,我是Peter~

從26個字母中精選出23個Pandas常用的函數(shù)乒验,將它們的使用方法介紹給大家。其中o电媳、y踏揣、z沒有相應(yīng)的函數(shù)。

image
import pandas as pd
import numpy as np

下面介紹每個函數(shù)的使用方法匾乓,更多詳細的內(nèi)容請移步官網(wǎng):https://pandas.pydata.org/docs/reference/general_functions.html

assign函數(shù)

df = pd.DataFrame({
    'temp_c': [17.0, 25.0]},
    index=['Portland', 'Berkeley'])
df

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>temp_c</th>
</tr>
</thead>
<tbody>
<tr>
<th>Portland</th>
<td>17.0</td>
</tr>
<tr>
<th>Berkeley</th>
<td>25.0</td>
</tr>
</tbody>
</table>

</div>

# 生成新的字段

df.assign(temp_f=df['temp_c'] * 9 / 5 + 32)

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>temp_c</th>
<th>temp_f</th>
</tr>
</thead>
<tbody>
<tr>
<th>Portland</th>
<td>17.0</td>
<td>62.6</td>
</tr>
<tr>
<th>Berkeley</th>
<td>25.0</td>
<td>77.0</td>
</tr>
</tbody>
</table>

</div>

df  # 原來DataFrame是不改變的

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>temp_c</th>
</tr>
</thead>
<tbody>
<tr>
<th>Portland</th>
<td>17.0</td>
</tr>
<tr>
<th>Berkeley</th>
<td>25.0</td>
</tr>
</tbody>
</table>

</div>

df["temp_f1"] = df["temp_c"] * 9 / 5 + 32
df

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>temp_c</th>
<th>temp_f1</th>
</tr>
</thead>
<tbody>
<tr>
<th>Portland</th>
<td>17.0</td>
<td>62.6</td>
</tr>
<tr>
<th>Berkeley</th>
<td>25.0</td>
<td>77.0</td>
</tr>
</tbody>
</table>

</div>

df

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>temp_c</th>
<th>temp_f1</th>
</tr>
</thead>
<tbody>
<tr>
<th>Portland</th>
<td>17.0</td>
<td>62.6</td>
</tr>
<tr>
<th>Berkeley</th>
<td>25.0</td>
<td>77.0</td>
</tr>
</tbody>
</table>

</div>

bool函數(shù)

返回單個Series或者DataFrame中單個元素的bool值:True或者False

pd.Series([True]).bool()
True
pd.Series([False]).bool()
False
pd.DataFrame({'col': [True]}).bool()
True
pd.DataFrame({'col': [False]}).bool()
False
# # 多個元素引發(fā)報錯

# pd.DataFrame({'col': [True,False]}).bool()
image

concat函數(shù)

該函數(shù)是用來表示多個DataFrame的拼接捞稿,橫向或者縱向皆可。

df1 = pd.DataFrame({
    "sid":["s1","s2"],
    "name":["xiaoming","Mike"]})
df1

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>xiaoming</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>Mike</td>
</tr>
</tbody>
</table>

</div>

df2 = pd.DataFrame({
    "sid":["s3","s4"],
    "name":["Tom","Peter"]})
df2

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s3</td>
<td>Tom</td>
</tr>
<tr>
<th>1</th>
<td>s4</td>
<td>Peter</td>
</tr>
</tbody>
</table>

</div>

df3 = pd.DataFrame({
    "address":["北京","深圳"],             
    "sex":["Male","Female"]})
df3

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>address</th>
<th>sex</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>北京</td>
<td>Male</td>
</tr>
<tr>
<th>1</th>
<td>深圳</td>
<td>Female</td>
</tr>
</tbody>
</table>

</div>

# 使用1:縱向
pd.concat([df1,df2])

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>xiaoming</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>Mike</td>
</tr>
<tr>
<th>0</th>
<td>s3</td>
<td>Tom</td>
</tr>
<tr>
<th>1</th>
<td>s4</td>
<td>Peter</td>
</tr>
</tbody>
</table>

</div>

# 使用2:橫向
pd.concat([df1,df3],axis=1)

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
<th>address</th>
<th>sex</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>xiaoming</td>
<td>北京</td>
<td>Male</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>Mike</td>
<td>深圳</td>
<td>Female</td>
</tr>
</tbody>
</table>

</div>

dropna函數(shù)

刪除空值

df4 = pd.DataFrame({
    "sid":["s1","s2", np.nan],             
    "name":["xiaoming",np.nan, "Mike"]})
df4

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>xiaoming</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>NaN</td>
</tr>
<tr>
<th>2</th>
<td>NaN</td>
<td>Mike</td>
</tr>
</tbody>
</table>

</div>

df4.dropna()

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>xiaoming</td>
</tr>
</tbody>
</table>

</div>

df4.dropna(subset=["name"])

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>xiaoming</td>
</tr>
<tr>
<th>2</th>
<td>NaN</td>
<td>Mike</td>
</tr>
</tbody>
</table>

</div>

explode函數(shù)

爆炸函數(shù)的使用:將寬表轉(zhuǎn)成長表

df5 = pd.DataFrame({
    "sid":["s1","s2"],       
    "phones":[["華為","小米","一加"],["三星","蘋果"]]
                   })
df5

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>phones</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>[華為, 小米, 一加]</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>[三星, 蘋果]</td>
</tr>
</tbody>
</table>

</div>

df5.explode("phones")

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>phones</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>華為</td>
</tr>
<tr>
<th>0</th>
<td>s1</td>
<td>小米</td>
</tr>
<tr>
<th>0</th>
<td>s1</td>
<td>一加</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>三星</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>蘋果</td>
</tr>
</tbody>
</table>

</div>

df5

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>phones</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>[華為, 小米, 一加]</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>[三星, 蘋果]</td>
</tr>
</tbody>
</table>

</div>

fillna函數(shù)

填充缺失值

df4

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>xiaoming</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>NaN</td>
</tr>
<tr>
<th>2</th>
<td>NaN</td>
<td>Mike</td>
</tr>
</tbody>
</table>

</div>

df4.fillna({"sid":"s3","name":"Peter"})

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>xiaoming</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>Peter</td>
</tr>
<tr>
<th>2</th>
<td>s3</td>
<td>Mike</td>
</tr>
</tbody>
</table>

</div>

groupby函數(shù)

同組統(tǒng)計的功能

# 借用這個結(jié)果
df6 = df5.explode("phones")
df6

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>phones</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>華為</td>
</tr>
<tr>
<th>0</th>
<td>s1</td>
<td>小米</td>
</tr>
<tr>
<th>0</th>
<td>s1</td>
<td>一加</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>三星</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>蘋果</td>
</tr>
</tbody>
</table>

</div>

df6.groupby("sid")["phones"].count()
sid
s1    3
s2    2
Name: phones, dtype: int64

head函數(shù)

查看前幾行的數(shù)據(jù)拼缝,默認是前5行

df7 = pd.DataFrame({
    "sid":list(range(10)),                
    "name":list(range(80,100,2))})
df7

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0</td>
<td>80</td>
</tr>
<tr>
<th>1</th>
<td>1</td>
<td>82</td>
</tr>
<tr>
<th>2</th>
<td>2</td>
<td>84</td>
</tr>
<tr>
<th>3</th>
<td>3</td>
<td>86</td>
</tr>
<tr>
<th>4</th>
<td>4</td>
<td>88</td>
</tr>
<tr>
<th>5</th>
<td>5</td>
<td>90</td>
</tr>
<tr>
<th>6</th>
<td>6</td>
<td>92</td>
</tr>
<tr>
<th>7</th>
<td>7</td>
<td>94</td>
</tr>
<tr>
<th>8</th>
<td>8</td>
<td>96</td>
</tr>
<tr>
<th>9</th>
<td>9</td>
<td>98</td>
</tr>
</tbody>
</table>

</div>

df7.head()   # 默認前5行

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0</td>
<td>80</td>
</tr>
<tr>
<th>1</th>
<td>1</td>
<td>82</td>
</tr>
<tr>
<th>2</th>
<td>2</td>
<td>84</td>
</tr>
<tr>
<th>3</th>
<td>3</td>
<td>86</td>
</tr>
<tr>
<th>4</th>
<td>4</td>
<td>88</td>
</tr>
</tbody>
</table>

</div>

df7.head(3)  # 指定前3行

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0</td>
<td>80</td>
</tr>
<tr>
<th>1</th>
<td>1</td>
<td>82</td>
</tr>
<tr>
<th>2</th>
<td>2</td>
<td>84</td>
</tr>
</tbody>
</table>

</div>

isnull函數(shù)

判斷是否存在缺失值娱局,超級常用的函數(shù)

df4

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>xiaoming</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>NaN</td>
</tr>
<tr>
<th>2</th>
<td>NaN</td>
<td>Mike</td>
</tr>
</tbody>
</table>

</div>

df4.isnull()  # True表示缺失

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>False</td>
<td>False</td>
</tr>
<tr>
<th>1</th>
<td>False</td>
<td>True</td>
</tr>
<tr>
<th>2</th>
<td>True</td>
<td>False</td>
</tr>
</tbody>
</table>

</div>

df4.isnull().sum()  # 每個字段缺失的總和
sid     1
name    1
dtype: int64
df6.isnull().sum()   # 沒有缺失值
sid       0
phones    0
dtype: int64

join函數(shù)

用于連接不同的DataFrame:

df7 = pd.DataFrame({
    'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'],
    'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})
df7

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>key</th>
<th>A</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>K0</td>
<td>A0</td>
</tr>
<tr>
<th>1</th>
<td>K1</td>
<td>A1</td>
</tr>
<tr>
<th>2</th>
<td>K2</td>
<td>A2</td>
</tr>
<tr>
<th>3</th>
<td>K3</td>
<td>A3</td>
</tr>
<tr>
<th>4</th>
<td>K4</td>
<td>A4</td>
</tr>
<tr>
<th>5</th>
<td>K5</td>
<td>A5</td>
</tr>
</tbody>
</table>

</div>

df8 = pd.DataFrame({
    'key': ['K0', 'K1', 'K2'],
    'B': ['B0', 'B1', 'B2']})
df8

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>key</th>
<th>B</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>K0</td>
<td>B0</td>
</tr>
<tr>
<th>1</th>
<td>K1</td>
<td>B1</td>
</tr>
<tr>
<th>2</th>
<td>K2</td>
<td>B2</td>
</tr>
</tbody>
</table>

</div>

df7.join(df8,lsuffix="_df7",rsuffix="_df8")

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>key_df7</th>
<th>A</th>
<th>key_df8</th>
<th>B</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>K0</td>
<td>A0</td>
<td>K0</td>
<td>B0</td>
</tr>
<tr>
<th>1</th>
<td>K1</td>
<td>A1</td>
<td>K1</td>
<td>B1</td>
</tr>
<tr>
<th>2</th>
<td>K2</td>
<td>A2</td>
<td>K2</td>
<td>B2</td>
</tr>
<tr>
<th>3</th>
<td>K3</td>
<td>A3</td>
<td>NaN</td>
<td>NaN</td>
</tr>
<tr>
<th>4</th>
<td>K4</td>
<td>A4</td>
<td>NaN</td>
<td>NaN</td>
</tr>
<tr>
<th>5</th>
<td>K5</td>
<td>A5</td>
<td>NaN</td>
<td>NaN</td>
</tr>
</tbody>
</table>

</div>

kurt函數(shù)

查找數(shù)據(jù)的峰度值

df9 = pd.DataFrame({
    "A":[12, 4, 5, 44, 1], 
    "B":[5, 2, 54, 3, 2], 
    "C":[20, 16, 7, 3, 8], 
    "D":[14, 3, 17, 2, 6]}) 
df9

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>12</td>
<td>5</td>
<td>20</td>
<td>14</td>
</tr>
<tr>
<th>1</th>
<td>4</td>
<td>2</td>
<td>16</td>
<td>3</td>
</tr>
<tr>
<th>2</th>
<td>5</td>
<td>54</td>
<td>7</td>
<td>17</td>
</tr>
<tr>
<th>3</th>
<td>44</td>
<td>3</td>
<td>3</td>
<td>2</td>
</tr>
<tr>
<th>4</th>
<td>1</td>
<td>2</td>
<td>8</td>
<td>6</td>
</tr>
</tbody>
</table>

</div>

df9.kurt()
A    3.936824
B    4.941512
C   -1.745717
D   -2.508808
dtype: float64

loc函數(shù)

loc就是location的縮寫,定位查找數(shù)據(jù)

df9

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>12</td>
<td>5</td>
<td>20</td>
<td>14</td>
</tr>
<tr>
<th>1</th>
<td>4</td>
<td>2</td>
<td>16</td>
<td>3</td>
</tr>
<tr>
<th>2</th>
<td>5</td>
<td>54</td>
<td>7</td>
<td>17</td>
</tr>
<tr>
<th>3</th>
<td>44</td>
<td>3</td>
<td>3</td>
<td>2</td>
</tr>
<tr>
<th>4</th>
<td>1</td>
<td>2</td>
<td>8</td>
<td>6</td>
</tr>
</tbody>
</table>

</div>

df9.loc[1,:]  # 第一行全部列的數(shù)據(jù)
A     4
B     2
C    16
D     3
Name: 1, dtype: int64
df9.loc[1:3,"B"]  # 1到3行的B列
1     2
2    54
3     3
Name: B, dtype: int64

merge函數(shù)

同樣也是數(shù)據(jù)的合并函數(shù)咧七,類似SQL中的join衰齐,功能最為強大

df7

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>key</th>
<th>A</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>K0</td>
<td>A0</td>
</tr>
<tr>
<th>1</th>
<td>K1</td>
<td>A1</td>
</tr>
<tr>
<th>2</th>
<td>K2</td>
<td>A2</td>
</tr>
<tr>
<th>3</th>
<td>K3</td>
<td>A3</td>
</tr>
<tr>
<th>4</th>
<td>K4</td>
<td>A4</td>
</tr>
<tr>
<th>5</th>
<td>K5</td>
<td>A5</td>
</tr>
</tbody>
</table>

</div>

df8

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>key</th>
<th>B</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>K0</td>
<td>B0</td>
</tr>
<tr>
<th>1</th>
<td>K1</td>
<td>B1</td>
</tr>
<tr>
<th>2</th>
<td>K2</td>
<td>B2</td>
</tr>
</tbody>
</table>

</div>

pd.merge(df7,df8)  # 默認how的參數(shù)是inner

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>key</th>
<th>A</th>
<th>B</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>K0</td>
<td>A0</td>
<td>B0</td>
</tr>
<tr>
<th>1</th>
<td>K1</td>
<td>A1</td>
<td>B1</td>
</tr>
<tr>
<th>2</th>
<td>K2</td>
<td>A2</td>
<td>B2</td>
</tr>
</tbody>
</table>

</div>

pd.merge(df7,df8,how="outer")  

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>key</th>
<th>A</th>
<th>B</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>K0</td>
<td>A0</td>
<td>B0</td>
</tr>
<tr>
<th>1</th>
<td>K1</td>
<td>A1</td>
<td>B1</td>
</tr>
<tr>
<th>2</th>
<td>K2</td>
<td>A2</td>
<td>B2</td>
</tr>
<tr>
<th>3</th>
<td>K3</td>
<td>A3</td>
<td>NaN</td>
</tr>
<tr>
<th>4</th>
<td>K4</td>
<td>A4</td>
<td>NaN</td>
</tr>
<tr>
<th>5</th>
<td>K5</td>
<td>A5</td>
<td>NaN</td>
</tr>
</tbody>
</table>

</div>

nunique函數(shù)

用于統(tǒng)計數(shù)據(jù)的唯一值

df10 = pd.DataFrame({
    "sid":list("acbdefg"),
    "score":[9,8,9,7,8,9,3]
                    })
df10

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>score</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>a</td>
<td>9</td>
</tr>
<tr>
<th>1</th>
<td>c</td>
<td>8</td>
</tr>
<tr>
<th>2</th>
<td>b</td>
<td>9</td>
</tr>
<tr>
<th>3</th>
<td>d</td>
<td>7</td>
</tr>
<tr>
<th>4</th>
<td>e</td>
<td>8</td>
</tr>
<tr>
<th>5</th>
<td>f</td>
<td>9</td>
</tr>
<tr>
<th>6</th>
<td>g</td>
<td>3</td>
</tr>
</tbody>
</table>

</div>

df10.nunique()
sid      7
score    4
dtype: int64

pct_change函數(shù)

計算當前時期和前一個時期的比值

s = pd.Series([90, 91, 85])
s
0    90
1    91
2    85
dtype: int64
s.pct_change()
0         NaN
1    0.011111
2   -0.065934
dtype: float64
(91 - 90) / 90
0.011111111111111112
(85 - 91) / 91
-0.06593406593406594
# 和前兩個時期相比
s.pct_change(periods=2) 
0         NaN
1         NaN
2   -0.055556
dtype: float64
# 如果存在空值,用填充方法
s = pd.Series([90, 91, None, 85])
s  
0    90.0
1    91.0
2     NaN
3    85.0
dtype: float64
s.pct_change(fill_method='ffill')
0         NaN
1    0.011111
2    0.000000
3   -0.065934
dtype: float64

query函數(shù)

根據(jù)條件查詢?nèi)≈?/p>

df10

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>score</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>a</td>
<td>9</td>
</tr>
<tr>
<th>1</th>
<td>c</td>
<td>8</td>
</tr>
<tr>
<th>2</th>
<td>b</td>
<td>9</td>
</tr>
<tr>
<th>3</th>
<td>d</td>
<td>7</td>
</tr>
<tr>
<th>4</th>
<td>e</td>
<td>8</td>
</tr>
<tr>
<th>5</th>
<td>f</td>
<td>9</td>
</tr>
<tr>
<th>6</th>
<td>g</td>
<td>3</td>
</tr>
</tbody>
</table>

</div>

df10.query("score >= 8")

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>score</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>a</td>
<td>9</td>
</tr>
<tr>
<th>1</th>
<td>c</td>
<td>8</td>
</tr>
<tr>
<th>2</th>
<td>b</td>
<td>9</td>
</tr>
<tr>
<th>4</th>
<td>e</td>
<td>8</td>
</tr>
<tr>
<th>5</th>
<td>f</td>
<td>9</td>
</tr>
</tbody>
</table>

</div>

rank函數(shù)

進行排名的函數(shù)继阻,類似SQL的窗口函數(shù)功能:

df10

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>score</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>a</td>
<td>9</td>
</tr>
<tr>
<th>1</th>
<td>c</td>
<td>8</td>
</tr>
<tr>
<th>2</th>
<td>b</td>
<td>9</td>
</tr>
<tr>
<th>3</th>
<td>d</td>
<td>7</td>
</tr>
<tr>
<th>4</th>
<td>e</td>
<td>8</td>
</tr>
<tr>
<th>5</th>
<td>f</td>
<td>9</td>
</tr>
<tr>
<th>6</th>
<td>g</td>
<td>3</td>
</tr>
</tbody>
</table>

</div>

df10["rank_10"] = df10["score"].rank()
df10

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>score</th>
<th>rank_10</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>a</td>
<td>9</td>
<td>6.0</td>
</tr>
<tr>
<th>1</th>
<td>c</td>
<td>8</td>
<td>3.5</td>
</tr>
<tr>
<th>2</th>
<td>b</td>
<td>9</td>
<td>6.0</td>
</tr>
<tr>
<th>3</th>
<td>d</td>
<td>7</td>
<td>2.0</td>
</tr>
<tr>
<th>4</th>
<td>e</td>
<td>8</td>
<td>3.5</td>
</tr>
<tr>
<th>5</th>
<td>f</td>
<td>9</td>
<td>6.0</td>
</tr>
<tr>
<th>6</th>
<td>g</td>
<td>3</td>
<td>1.0</td>
</tr>
</tbody>
</table>

</div>

df10["rank_10_max"] = df10["score"].rank(method="max")
df10

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>score</th>
<th>rank_10</th>
<th>rank_10_max</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>a</td>
<td>9</td>
<td>6.0</td>
<td>7.0</td>
</tr>
<tr>
<th>1</th>
<td>c</td>
<td>8</td>
<td>3.5</td>
<td>4.0</td>
</tr>
<tr>
<th>2</th>
<td>b</td>
<td>9</td>
<td>6.0</td>
<td>7.0</td>
</tr>
<tr>
<th>3</th>
<td>d</td>
<td>7</td>
<td>2.0</td>
<td>2.0</td>
</tr>
<tr>
<th>4</th>
<td>e</td>
<td>8</td>
<td>3.5</td>
<td>4.0</td>
</tr>
<tr>
<th>5</th>
<td>f</td>
<td>9</td>
<td>6.0</td>
<td>7.0</td>
</tr>
<tr>
<th>6</th>
<td>g</td>
<td>3</td>
<td>1.0</td>
<td>1.0</td>
</tr>
</tbody>
</table>

</div>

df10["rank_10_min"] = df10["score"].rank(method="min")
df10

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>score</th>
<th>rank_10</th>
<th>rank_10_max</th>
<th>rank_10_min</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>a</td>
<td>9</td>
<td>6.0</td>
<td>7.0</td>
<td>5.0</td>
</tr>
<tr>
<th>1</th>
<td>c</td>
<td>8</td>
<td>3.5</td>
<td>4.0</td>
<td>3.0</td>
</tr>
<tr>
<th>2</th>
<td>b</td>
<td>9</td>
<td>6.0</td>
<td>7.0</td>
<td>5.0</td>
</tr>
<tr>
<th>3</th>
<td>d</td>
<td>7</td>
<td>2.0</td>
<td>2.0</td>
<td>2.0</td>
</tr>
<tr>
<th>4</th>
<td>e</td>
<td>8</td>
<td>3.5</td>
<td>4.0</td>
<td>3.0</td>
</tr>
<tr>
<th>5</th>
<td>f</td>
<td>9</td>
<td>6.0</td>
<td>7.0</td>
<td>5.0</td>
</tr>
<tr>
<th>6</th>
<td>g</td>
<td>3</td>
<td>1.0</td>
<td>1.0</td>
<td>1.0</td>
</tr>
</tbody>
</table>

</div>

sort_values函數(shù)

根據(jù)數(shù)據(jù)進行排序的函數(shù)

df9

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>12</td>
<td>5</td>
<td>20</td>
<td>14</td>
</tr>
<tr>
<th>1</th>
<td>4</td>
<td>2</td>
<td>16</td>
<td>3</td>
</tr>
<tr>
<th>2</th>
<td>5</td>
<td>54</td>
<td>7</td>
<td>17</td>
</tr>
<tr>
<th>3</th>
<td>44</td>
<td>3</td>
<td>3</td>
<td>2</td>
</tr>
<tr>
<th>4</th>
<td>1</td>
<td>2</td>
<td>8</td>
<td>6</td>
</tr>
</tbody>
</table>

</div>

df9.sort_values("A")  # 默認是升序排列

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
</thead>
<tbody>
<tr>
<th>4</th>
<td>1</td>
<td>2</td>
<td>8</td>
<td>6</td>
</tr>
<tr>
<th>1</th>
<td>4</td>
<td>2</td>
<td>16</td>
<td>3</td>
</tr>
<tr>
<th>2</th>
<td>5</td>
<td>54</td>
<td>7</td>
<td>17</td>
</tr>
<tr>
<th>0</th>
<td>12</td>
<td>5</td>
<td>20</td>
<td>14</td>
</tr>
<tr>
<th>3</th>
<td>44</td>
<td>3</td>
<td>3</td>
<td>2</td>
</tr>
</tbody>
</table>

</div>

# 先根據(jù)B升序耻涛,如果B相同废酷,再根據(jù)D降序

df9.sort_values(["B","D"], ascending=[True,False])  

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
</thead>
<tbody>
<tr>
<th>4</th>
<td>1</td>
<td>2</td>
<td>8</td>
<td>6</td>
</tr>
<tr>
<th>1</th>
<td>4</td>
<td>2</td>
<td>16</td>
<td>3</td>
</tr>
<tr>
<th>3</th>
<td>44</td>
<td>3</td>
<td>3</td>
<td>2</td>
</tr>
<tr>
<th>0</th>
<td>12</td>
<td>5</td>
<td>20</td>
<td>14</td>
</tr>
<tr>
<th>2</th>
<td>5</td>
<td>54</td>
<td>7</td>
<td>17</td>
</tr>
</tbody>
</table>

</div>

tail函數(shù)

查看末尾的數(shù)據(jù)

df7.tail()

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>key</th>
<th>A</th>
</tr>
</thead>
<tbody>
<tr>
<th>1</th>
<td>K1</td>
<td>A1</td>
</tr>
<tr>
<th>2</th>
<td>K2</td>
<td>A2</td>
</tr>
<tr>
<th>3</th>
<td>K3</td>
<td>A3</td>
</tr>
<tr>
<th>4</th>
<td>K4</td>
<td>A4</td>
</tr>
<tr>
<th>5</th>
<td>K5</td>
<td>A5</td>
</tr>
</tbody>
</table>

</div>

df7.tail(3)

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>key</th>
<th>A</th>
</tr>
</thead>
<tbody>
<tr>
<th>3</th>
<td>K3</td>
<td>A3</td>
</tr>
<tr>
<th>4</th>
<td>K4</td>
<td>A4</td>
</tr>
<tr>
<th>5</th>
<td>K5</td>
<td>A5</td>
</tr>
</tbody>
</table>

</div>

unique函數(shù)

查找每個字段的唯一元素

df10

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>score</th>
<th>rank_10</th>
<th>rank_10_max</th>
<th>rank_10_min</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>a</td>
<td>9</td>
<td>6.0</td>
<td>7.0</td>
<td>5.0</td>
</tr>
<tr>
<th>1</th>
<td>c</td>
<td>8</td>
<td>3.5</td>
<td>4.0</td>
<td>3.0</td>
</tr>
<tr>
<th>2</th>
<td>b</td>
<td>9</td>
<td>6.0</td>
<td>7.0</td>
<td>5.0</td>
</tr>
<tr>
<th>3</th>
<td>d</td>
<td>7</td>
<td>2.0</td>
<td>2.0</td>
<td>2.0</td>
</tr>
<tr>
<th>4</th>
<td>e</td>
<td>8</td>
<td>3.5</td>
<td>4.0</td>
<td>3.0</td>
</tr>
<tr>
<th>5</th>
<td>f</td>
<td>9</td>
<td>6.0</td>
<td>7.0</td>
<td>5.0</td>
</tr>
<tr>
<th>6</th>
<td>g</td>
<td>3</td>
<td>1.0</td>
<td>1.0</td>
<td>1.0</td>
</tr>
</tbody>
</table>

</div>

df10["score"].unique()
array([9, 8, 7, 3])
df10["rank_10"].unique()
array([6. , 3.5, 2. , 1. ])

value_counts函數(shù)

用于統(tǒng)計字段中每個唯一值的個數(shù)

df6

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>sid</th>
<th>phones</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>s1</td>
<td>華為</td>
</tr>
<tr>
<th>0</th>
<td>s1</td>
<td>小米</td>
</tr>
<tr>
<th>0</th>
<td>s1</td>
<td>一加</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>三星</td>
</tr>
<tr>
<th>1</th>
<td>s2</td>
<td>蘋果</td>
</tr>
</tbody>
</table>

</div>

df6["sid"].value_counts()
s1    3
s2    2
Name: sid, dtype: int64
df6["phones"].value_counts()
華為    1
蘋果    1
三星    1
一加    1
小米    1
Name: phones, dtype: int64

where函數(shù)

用于查找Series或者DataFrame中滿足某個條件的數(shù)據(jù)

w = pd.Series(range(7))
w
0    0
1    1
2    2
3    3
4    4
5    5
6    6
dtype: int64
# 滿足條件的顯示;不滿足的用空值代替
w.where(w>3)
0    NaN
1    NaN
2    NaN
3    NaN
4    4.0
5    5.0
6    6.0
dtype: float64
# 不滿足條件的用8代替
w.where(w > 1, 8)
0    8
1    8
2    2
3    3
4    4
5    5
6    6
dtype: int64

xs函數(shù)

該函數(shù)是用于多層級索引中用于獲取指定索引處的值抹缕,使用一個關(guān)鍵參數(shù)來選擇多索引特定級別的數(shù)據(jù)澈蟆。

d = {'num_legs': [4, 4, 2, 2],
     'num_wings': [0, 0, 2, 2],
     'class': ['mammal', 'mammal', 'mammal', 'bird'],
     'animal': ['cat', 'dog', 'bat', 'penguin'],
     'locomotion': ['walks', 'walks', 'flies', 'walks']}
# 生成數(shù)據(jù)
df11 = pd.DataFrame(data=d)
# 重置索引
df11 = df11.set_index(['class', 'animal', 'locomotion'])
df11

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th></th>
<th></th>
<th>num_legs</th>
<th>num_wings</th>
</tr>
<tr>
<th>class</th>
<th>animal</th>
<th>locomotion</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th rowspan="3" valign="top">mammal</th>
<th>cat</th>
<th>walks</th>
<td>4</td>
<td>0</td>
</tr>
<tr>
<th>dog</th>
<th>walks</th>
<td>4</td>
<td>0</td>
</tr>
<tr>
<th>bat</th>
<th>flies</th>
<td>2</td>
<td>2</td>
</tr>
<tr>
<th>bird</th>
<th>penguin</th>
<th>walks</th>
<td>2</td>
<td>2</td>
</tr>
</tbody>
</table>

</div>

# 獲取指定索引的值
df11.xs('mammal')  

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th></th>
<th>num_legs</th>
<th>num_wings</th>
</tr>
<tr>
<th>animal</th>
<th>locomotion</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th>cat</th>
<th>walks</th>
<td>4</td>
<td>0</td>
</tr>
<tr>
<th>dog</th>
<th>walks</th>
<td>4</td>
<td>0</td>
</tr>
<tr>
<th>bat</th>
<th>flies</th>
<td>2</td>
<td>2</td>
</tr>
</tbody>
</table>

</div>

# 指定多個索引處的值
df11.xs(('mammal', 'dog'))
/Applications/downloads/anaconda/anaconda3/lib/python3.7/site-packages/IPython/core/interactiveshell.py:2881: PerformanceWarning: indexing past lexsort depth may impact performance.
  return runner(coro)

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>num_legs</th>
<th>num_wings</th>
</tr>
<tr>
<th>locomotion</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th>walks</th>
<td>4</td>
<td>0</td>
</tr>
</tbody>
</table>

</div>

# 獲取指定索引和級別(level)的值

df11.xs('cat', level=1)

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th></th>
<th>num_legs</th>
<th>num_wings</th>
</tr>
<tr>
<th>class</th>
<th>locomotion</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th>mammal</th>
<th>walks</th>
<td>4</td>
<td>0</td>
</tr>
</tbody>
</table>

</div>

df11

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th></th>
<th></th>
<th>num_legs</th>
<th>num_wings</th>
</tr>
<tr>
<th>class</th>
<th>animal</th>
<th>locomotion</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th rowspan="3" valign="top">mammal</th>
<th>cat</th>
<th>walks</th>
<td>4</td>
<td>0</td>
</tr>
<tr>
<th>dog</th>
<th>walks</th>
<td>4</td>
<td>0</td>
</tr>
<tr>
<th>bat</th>
<th>flies</th>
<td>2</td>
<td>2</td>
</tr>
<tr>
<th>bird</th>
<th>penguin</th>
<th>walks</th>
<td>2</td>
<td>2</td>
</tr>
</tbody>
</table>

</div>

# 獲取多個索引和級別的值
df11.xs(('bird', 'walks'),level=[0, 'locomotion'])

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>num_legs</th>
<th>num_wings</th>
</tr>
<tr>
<th>animal</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th>penguin</th>
<td>2</td>
<td>2</td>
</tr>
</tbody>
</table>

</div>

# 獲取指定列和軸上的值
df11.xs('num_wings', axis=1)
class   animal   locomotion
mammal  cat      walks         0
        dog      walks         0
        bat      flies         2
bird    penguin  walks         2
Name: num_wings, dtype: int64
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市卓研,隨后出現(xiàn)的幾起案子趴俘,更是在濱河造成了極大的恐慌,老刑警劉巖鉴分,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哮幢,死亡現(xiàn)場離奇詭異,居然都是意外死亡志珍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門垛叨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伦糯,“玉大人,你說我怎么就攤上這事嗽元×哺伲” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵剂癌,是天一觀的道長淤翔。 經(jīng)常有香客問我,道長佩谷,這世上最難降的妖魔是什么旁壮? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮谐檀,結(jié)果婚禮上抡谐,老公的妹妹穿的比我還像新娘。我一直安慰自己桐猬,他們只是感情好麦撵,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著溃肪,像睡著了一般免胃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惫撰,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天羔沙,我揣著相機與錄音,去河邊找鬼润绎。 笑死撬碟,一個胖子當著我的面吹牛诞挨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播呢蛤,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼惶傻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了其障?” 一聲冷哼從身側(cè)響起银室,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎励翼,沒想到半個月后蜈敢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡汽抚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年抓狭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片造烁。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡否过,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惭蟋,到底是詐尸還是另有隱情苗桂,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布告组,位于F島的核電站煤伟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏木缝。R本人自食惡果不足惜便锨,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望氨肌。 院中可真熱鬧鸿秆,春花似錦、人聲如沸怎囚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恳守。三九已至考婴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間催烘,已是汗流浹背沥阱。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伊群,地道東北人考杉。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓策精,卻偏偏與公主長得像,于是被迫代替她去往敵國和親崇棠。 傳聞我的和親對象是個殘疾皇子咽袜,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容