在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)分析&挖掘/ Pandas重建索引
Pandas教程
Pandas注意事項(xiàng)&竅門
Pandas IO工具
Pandas重建索引
Pandas稀疏數(shù)據(jù)
Pandas時(shí)間差(Timedelta)
Pandas聚合
Pandas字符串和文本數(shù)據(jù)
Pandas分類數(shù)據(jù)
Pandas索引和選擇數(shù)據(jù)
Pandas基本功能
Pandas系列
Pandas數(shù)據(jù)幀(DataFrame)
Pandas日期功能
Pandas缺失數(shù)據(jù)
Pandas與SQL比較
Pandas迭代
Pandas合并/連接
Pandas選項(xiàng)和自定義
Pandas級(jí)聯(lián)
Pandas可視化
Pandas數(shù)據(jù)結(jié)構(gòu)
Pandas環(huán)境安裝配置
Pandas統(tǒng)計(jì)函數(shù)
Pandas窗口函數(shù)
Pandas面板(Panel)
Pandas排序
Pandas函數(shù)應(yīng)用
Pandas快速入門
Pandas描述性統(tǒng)計(jì)
Pandas分組(GroupBy)

Pandas重建索引

重新索引會(huì)更改DataFrame的行標(biāo)簽和列標(biāo)簽。重新索引意味著符合數(shù)據(jù)以匹配特定軸上的一組給定的標(biāo)簽。

可以通過索引來實(shí)現(xiàn)多個(gè)操作 -

  • 重新排序現(xiàn)有數(shù)據(jù)以匹配一組新的標(biāo)簽。
  • 在沒有標(biāo)簽數(shù)據(jù)的標(biāo)簽位置插入缺失值(NA)標(biāo)記。

示例

import pandas as pd
import numpy as np

N=20

df = pd.DataFrame({
   'A': pd.date_range(start='2016-01-01',periods=N,freq='D'),
   'x': np.linspace(0,stop=N-1,num=N),
   'y': np.random.rand(N),
   'C': np.random.choice(['Low','Medium','High'],N).tolist(),
   'D': np.random.normal(100, 10, size=(N)).tolist()
})

#reindex the DataFrame
df_reindexed = df.reindex(index=[0,2,5], columns=['A', 'C', 'B'])

print (df_reindexed)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

            A    C     B
0  2016-01-01  Low   NaN
2  2016-01-03  High  NaN
5  2016-01-06  Low   NaN

重建索引與其他對象對齊

有時(shí)可能希望采取一個(gè)對象和重新索引,其軸被標(biāo)記為與另一個(gè)對象相同。 考慮下面的例子來理解這一點(diǎn)。

示例

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.random.randn(10,3),columns=['col1','col2','col3'])
df2 = pd.DataFrame(np.random.randn(7,3),columns=['col1','col2','col3'])

df1 = df1.reindex_like(df2)
print df1

執(zhí)行上面示例代碼,得到以下結(jié)果 -

          col1         col2         col3
0    -2.467652    -1.211687    -0.391761
1    -0.287396     0.522350     0.562512
2    -0.255409    -0.483250     1.866258
3    -1.150467    -0.646493    -0.222462
4     0.152768    -2.056643     1.877233
5    -1.155997     1.528719    -1.343719
6    -1.015606    -1.245936    -0.295275

注意 - 在這里,df1數(shù)據(jù)幀(DataFrame)被更改并重新編號(hào),如df2。 列名稱應(yīng)該匹配,否則將為整個(gè)列標(biāo)簽添加NAN。

填充時(shí)重新加注

reindex()采用可選參數(shù)方法,它是一個(gè)填充方法,其值如下:

  • pad/ffill - 向前填充值
  • bfill/backfill - 向后填充值
  • nearest - 從最近的索引值填充

示例

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.random.randn(6,3),columns=['col1','col2','col3'])
df2 = pd.DataFrame(np.random.randn(2,3),columns=['col1','col2','col3'])

# Padding NAN's
print df2.reindex_like(df1)

# Now Fill the NAN's with preceding Values
print ("Data Frame with Forward Fill:")
print df2.reindex_like(df1,method='ffill')

執(zhí)行上面示例代碼時(shí),得到以下結(jié)果 -

         col1        col2       col3
0    1.311620   -0.707176   0.599863
1   -0.423455   -0.700265   1.133371
2         NaN         NaN        NaN
3         NaN         NaN        NaN
4         NaN         NaN        NaN
5         NaN         NaN        NaN

Data Frame with Forward Fill:
         col1        col2        col3
0    1.311620   -0.707176    0.599863
1   -0.423455   -0.700265    1.133371
2   -0.423455   -0.700265    1.133371
3   -0.423455   -0.700265    1.133371
4   -0.423455   -0.700265    1.133371
5   -0.423455   -0.700265    1.133371

注 - 最后四行被填充了。

重建索引時(shí)的填充限制

限制參數(shù)在重建索引時(shí)提供對填充的額外控制。限制指定連續(xù)匹配的最大計(jì)數(shù)??紤]下面的例子來理解這個(gè)概念 -

示例

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.random.randn(6,3),columns=['col1','col2','col3'])
df2 = pd.DataFrame(np.random.randn(2,3),columns=['col1','col2','col3'])

# Padding NAN's
print df2.reindex_like(df1)

# Now Fill the NAN's with preceding Values
print ("Data Frame with Forward Fill limiting to 1:")
print df2.reindex_like(df1,method='ffill',limit=1)

在執(zhí)行上面示例代碼時(shí),得到以下結(jié)果 -

         col1        col2        col3
0    0.247784    2.128727    0.702576
1   -0.055713   -0.021732   -0.174577
2         NaN         NaN         NaN
3         NaN         NaN         NaN
4         NaN         NaN         NaN
5         NaN         NaN         NaN

Data Frame with Forward Fill limiting to 1:
         col1        col2        col3
0    0.247784    2.128727    0.702576
1   -0.055713   -0.021732   -0.174577
2   -0.055713   -0.021732   -0.174577
3         NaN         NaN         NaN
4         NaN         NaN         NaN
5         NaN         NaN         NaN

注意 - 只有第7行由前6行填充。 然后,其它行按原樣保留。

重命名

rename()方法允許基于一些映射(字典或者系列)或任意函數(shù)來重新標(biāo)記一個(gè)軸。
看看下面的例子來理解這一概念。

示例

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.random.randn(6,3),columns=['col1','col2','col3'])
print df1

print ("After renaming the rows and columns:")
print df1.rename(columns={'col1' : 'c1', 'col2' : 'c2'},
index = {0 : 'apple', 1 : 'banana', 2 : 'durian'})

執(zhí)行上面示例代碼,得到以下結(jié)果 -

         col1        col2        col3
0    0.486791    0.105759    1.540122
1   -0.990237    1.007885   -0.217896
2   -0.483855   -1.645027   -1.194113
3   -0.122316    0.566277   -0.366028
4   -0.231524   -0.721172   -0.112007
5    0.438810    0.000225    0.435479

After renaming the rows and columns:
                c1          c2        col3
apple     0.486791    0.105759    1.540122
banana   -0.990237    1.007885   -0.217896
durian   -0.483855   -1.645027   -1.194113
3        -0.122316    0.566277   -0.366028
4        -0.231524   -0.721172   -0.112007
5         0.438810    0.000225    0.435479

rename()方法提供了一個(gè)inplace命名參數(shù),默認(rèn)為False并復(fù)制底層數(shù)據(jù)。 指定傳遞inplace = True則表示將數(shù)據(jù)重命名。