我已经生成了一个名为df的初始数据帧,然后生成了一个名为df\u new的调整数据帧。你知道吗
我希望使用set\u index()操作从df到df\u new。 我的问题是如何协商列的层次索引
import pandas as pd
import numpy as np
df = pd.DataFrame(np.ones((5,5)))
col_idx = pd.MultiIndex.from_tuples([('X','a'),('X','b'),('Y','c'),('Y','d'),('Y','e')])
row_idx = ['a1','a2','a3','a4','a5']
df.columns = col_idx
df.index = row_idx
idx = pd.IndexSlice
df.loc[:,idx['Y','d']] = 99
print df.head()
X Y
a b c d e
a1 1 1 1 99 1
a2 1 1 1 99 1
a3 1 1 1 99 1
a4 1 1 1 99 1
a5 1 1 1 99 1
#------------------------------------------------------------------------------------------
df_new = pd.DataFrame(np.ones((5,4)))
col_idx = pd.MultiIndex.from_tuples([('X','a'),('X','b'),('Y','c'),('Y','e')])
row_idx = pd.MultiIndex.from_tuples([('a1',99),('a2',99),('a3',99),('a4',99),('a5',99)])
df_new.columns = col_idx
df_new.index = row_idx
print df_new.head()
# this is what df_new should look like.
# ('Y','d') got appended to the row index.
X Y
a b c e
a1 99 1 1 1 1
a2 99 1 1 1 1
a3 99 1 1 1 1
a4 99 1 1 1 1
a5 99 1 1 1 1
那个DataFrame.set\u索引方法接受一个append关键字参数,因此您可以这样做:
如果要添加多个列,只需将它们作为列表提供:
可以使用元组表示法来指示多索引列中的一列(并且需要
append=True
来不替换现有索引):如果要删除索引名,可以执行以下操作:
如果要向索引中添加多列,则必须使用列名称列表(在本例中为元组):
相关问题 更多 >
编程相关推荐