我正在使用统一的转售价格dataset(如果您有兴趣,我将使用2015年1月以后的数据)。
首先,我通过使用将数据分组
data.groupby('flat_type').sum()
,则数据变为:
现在,我尝试使用this post的答案来交换最后两行:
b,c = data_by_type.iloc[-2], data_by_type.iloc[-1]
temp = data_by_type.iloc[-2].copy()
data_by_type.iloc[-2] = c
data_by_type.iloc[-1] = b
后两行的内容已更改,但后两行的索引保持不变。
所以我的问题是: 如何交换整个行,包括索引?
答案 0 :(得分:1)
使用np.r_
:
df = df.iloc[np.r_[0:len(df) - 2, -1, -2]]
替代:
df = df.loc[df.index[:-2].tolist() + df.index[-1:].tolist() + df.index[-2:-1].tolist()]
print (df)
floor_area_sqm lease_commence_date remaining_lease \
flat_type
1 ROOM 1085.0 69125 1977
2 ROOM 40898.0 1788955 62356
3 ROOM 1430010.1 41448329 1344374
4 ROOM 3226160.4 67177320 2604002
5 ROOM 2349460.0 39663269 1555300
MULTI-GENERATION 4105.0 49677 1708
EXECUTIVE 943961.0 13059434 495628
resale_price
flat_type
1 ROOM 6.938000e+06
2 ROOM 2.168112e+08
3 ROOM 6.628663e+09
4 ROOM 1.460442e+10
5 ROOM 1.043298e+10
MULTI-GENERATION 1.969189e+07
EXECUTIVE 4.101716e+09