2016-08-02 83 views
4

版本信息:如何重新索引多列

print(sys.version) 
3.5.1 |Anaconda 4.1.0 (64-bit)| (default, Jun 15 2016, 15:29:36) [MSC v.1900 64 bit (AMD64)] 

我有一個看起來像這樣(緯度和經度是多列)在數據幀列:

+------------+---------------+--------------+--------------+ 
| CustomerId | StreetAddress | Latitude | Longitude | 
+------------+---------------+-------+------+-------+------+ 
|       | count | mean | count | mean | 
+----------------------------+-------+------+-------+------+ 

我想獲得這樣的:

+------------+---------------+-----------+----------+-----------+----------+ 
| CustomerId | StreetAddress | Lat_count | Lat_mean | Lon_count | Lon_mean | 
+------------+---------------+-----------+----------+-----------+----------+ 

我嘗試這樣做:

newColumns = ['CustomerId','StreetAddress','Lat_count','Lat_mean','Lon_count','Lon_mean'] 
data2 = data1.reindex(columns=newColumns) 

但這絕對沒有用!我結束了一些瘋狂的多級列,newColumns中每個字符串的每個字母都是一個新的級別。

更新

這裏是我的專欄

data1.columns.to_series() 

CustomerId     (CustomerId,) 
StreetAddress   (StreetAddress,) 
Latitude  count  (Latitude, count) 
       mean  (Latitude, mean) 
Longitude  count (Longitude, count) 
       mean  (Longitude, mean) 
+0

我試圖找出如果'CustomerId'和'StreetAddress'是列或一部分該指數。你可以運行'print data1.columns.to_series()'並將其發佈到你的問題中嗎?謝謝 – piRSquared

+0

@piRSquared他們是專欄。看到我更新的答案。 –

+0

完美,我的解決方案應該工作得很好。 – piRSquared

回答

3

這將這樣的伎倆:

data2 = pd.DataFrame(data1.values, columns=newColumns) 

而且也是這樣:

data1.columns = newColumns 
+0

謝謝。顯然我是在過度複雜的情況下。 –