2016-09-27 102 views
-1

對於我所猜測的基本數據框/系列選擇問題,我很抱歉,但我是一個新手,有點卡住了。操縱熊貓系列 - 列中的空行

,我有以下數據:

seas off 
2000 ARI 0.569369 
     ATL 0.553398 
     BAL 0.554404 
     BUF 0.571429 
     CAR 0.600000 
     CHI 0.560886 
     CIN 0.454945 
     CLE 0.573196 
     DAL 0.572707 
     DEN 0.612850 
     DET 0.550696 

的「海洋」然後重複2001年等爲2015年FWIW,當我嘗試df['off']它不返回「關」欄目。

無論如何,我想要做的是基本上爲每個數字創建一個鍵。要做到這一點,我想複製每一行的年份,然後將其添加到「關閉」以獲得密鑰。於是如下:

seas off value  key 
2000 ARI 0.569369 2000ARI 
2000 ATL 0.553398 2000ATL 
2000 BAL 0.554404 2000BAL 
2000 BUF 0.571429 2000BUF 
2000 CAR 0.600000 2000CAR 
... 
... 
2001 CHI 0.560886 2001CHI 
2001 CIN 0.454945 2001CIN 
2001 CLE 0.573196 2001CLE 
2001 DAL 0.572707 2001DAL 
2001 DEN 0.612850 2001DEN 
2001 DET 0.550696 2001DET 

幫助非常感謝......

約翰

+0

儘管可以創建'key'列,您很有可能不需要它。你可能想擴展你的問題來解釋你打算使用'key'列。我們可能能夠展示如何在不形成'key'列的情況下做到這一點。 – unutbu

+0

謝謝 - 我想將它與具有「年」和「關」索引的不同表中的鍵匹配,並且我創建了索引。 – JohnB

回答

1

我的猜測是,你沒有一個數據幀,但具有多指標一個系列。

import io 
import pandas as pd 

data = io.StringIO('''\ 
seas off  value 
2000 ARI 0.569369 
2000 ATL 0.553398 
2000 BAL 0.554404 
2000 BUF 0.571429 
2000 CAR 0.600000 
2000 CHI 0.560886 
2000 CIN 0.454945 
2000 CLE 0.573196 
2000 DAL 0.572707 
2000 DEN 0.612850 
2000 DET 0.550696 
''') 
df = pd.read_csv(data, delim_whitespace=True).set_index(['seas', 'off']).squeeze() 

在這種情況下,您可以這樣做。首先,請seasoff成數據幀的列:

df = df.reset_index() 

然後通過連接seasoff列創建一個列key

df['key'] = df['seas'].astype(str) + df['off'] 

最後,送seasoff回索引:

df = df.set_index(['seas', 'off']) 

輸出:

   value  key 
seas off     
2000 ARI 0.569369 2000ARI 
    ATL 0.553398 2000ATL 
    BAL 0.554404 2000BAL 
    BUF 0.571429 2000BUF 
    CAR 0.600000 2000CAR 
    CHI 0.560886 2000CHI 
    CIN 0.454945 2000CIN 
    CLE 0.573196 2000CLE 
    DAL 0.572707 2000DAL 
    DEN 0.612850 2000DEN 
    DET 0.550696 2000DET 
+0

完美 - 謝謝!這工作 – JohnB