我提前道歉,因为我认为这是一个基本的数据帧/系列选择问题,但我是一个新手,有点卡住了。
我有以下数据:
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 :(得分:1)
我的猜测是你没有DataFrame,而是具有MultiIndex的系列。
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()
在这种情况下,这是你可以做的。首先,将seas
和off
放入DataFrame的列中:
df = df.reset_index()
然后通过连接key
和seas
列来创建列off
:
df['key'] = df['seas'].astype(str) + df['off']
最后,将seas
和off
发送回索引:
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