我将沿着轴=1(列(连接两个数据帧,并尝试使用"键"以便稍后能够区分具有相同名称的两个数据框架的列。
df1 = pd.DataFrame({'tl': ['x1', 'x2', 'x3', 'x4'],
'ff': ['y1', 'y2', 'y3', 'y4'],
'dd': ['z1', 'z2', 'z3', 'z4']},
index=[2016-01-01, 2016-01-02, 2016-01-03, 2016-01-04])
df2 = pd.DataFrame({'tl': ['x1', 'x2', 'x3', 'x4'],
'ff': ['y1', 'y2', 'y3', 'y4'],
'rf': ['z1', 'z2', 'z3', 'z4']},
index=[2016-01-01, 2016-01-02, 2016-01-03, 2016-01-04])
data = pd.concat([df1, df2],keys=['snow','wind'], axis=1, ignore_index=True)
然而,当试图打印Pandas中@YashTD建议的属于其中一个键的所有列时,添加键,同时在列级连接数据帧
print(comb_data.snow.tl)
我收到以下错误消息:
AttributeError: 'DataFrame' object has no attribute 'snow'
我想,密钥只是没有被添加到数据帧中,但我不知道为什么。他们也没有出现在打印数据帧头((时,应该由Pandas在列级连接数据帧时添加密钥
你知道如何将密钥添加到数据帧中吗?
首先删除列中MultiIndex
的参数ignore_index=True
,然后通过tuple
:进行选择
data = pd.concat([df1, df2],keys=['snow','wind'], axis=1)
print (data)
snow wind
tl ff dd tl ff rf
2016-01-01 x1 y1 z1 x1 y1 z1
2016-01-02 x2 y2 z2 x2 y2 z2
2016-01-03 x3 y3 z3 x3 y3 z3
2016-01-04 x4 y4 z4 x4 y4 z4
print (data[('snow','tl')])
2016-01-01 x1
2016-01-02 x2
2016-01-03 x3
2016-01-04 x4
Name: (snow, tl), dtype: object