重建索引
reindex用于創(chuàng)建一個符合新索引的對象酗昼,如果某個索引值之前不存在缤沦,則引入缺失值
obj2 = obj.reindex(['a','b'])
為解決缺失值問題艺玲,使用ffill方法會將值前向填充
obj3.reindex(range(6),method='ffill')
reindex可選擇重建行列索引
frame.reindex(columns=states)
frame.reindex(index=states)
loc可進行更簡潔的標簽索引
frame.loc[['a','b'], states]
刪除條目
obj.drop(['a','b'])
obj.drop('c)
調(diào)用drop會根據(jù)行標簽刪除值揭芍,若要按列標簽
obj.drop('a',axis=1)
obj.drop('a',axis='columns')
索引選擇數(shù)據(jù)
布爾數(shù)組選擇
data[data['a']>5]
loc軸標簽選擇,iloc整數(shù)標簽選擇
data.loc[:'c', 'one']
data.iloc[:3, 1]
填充值
兩個df加到一起會導致在一些不重疊的位置出現(xiàn)NA
使用add会前,并使用fill_value填充
df1.add(df2, fill_value=0)
DataFrame和Series間的操作
DataFrame和Series間的操作類似于numpy中的廣播機制
series = frame.iloc[0]
frame - series
如果想改為在列上進行廣播,在行匹配匾竿,必須使用算術(shù)方法
series = frame['column0']
frame.sub(series, axis='index')
函數(shù)映射
將函數(shù)應(yīng)用到一行或一列的一維數(shù)組上瓦宜,apply方法可實現(xiàn)功能,返回是每一列的結(jié)果
f = lambda x :x.max() - x.min()
frame.apply(f)
若要每行調(diào)用一次
frame.apply(f, axis='columns')
排序與排名
對Dataframe排序岭妖,sort_index()
axis:按行或列临庇,ascending:升序或降序
obj.sort_index(axis=0,ascending=False)
按Series值排序昵慌,使用sort_values
series.sort_values(by='b')
series.sort_values(by=['a', 'b'])
排名假夺,對數(shù)組從1到有效數(shù)據(jù)點總數(shù)分配名次的操作。
obj.rank()