2016-09-27 45 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