Python 如何重新索引数据帧的多索引列?
我有一个熊猫Python 如何重新索引数据帧的多索引列?,python,pandas,multi-index,Python,Pandas,Multi Index,我有一个熊猫DataFrame,列上有multi-index(假设有3个级别): 当我通过第一级并产生数据帧的子集时: def cluster(df): for key in df.columns.levels[0]: yield df[key] for subdf in cluster(df): print(subdf.columns) 列索引确实丢失了它的第一级,但是多索引仍然包含对子级中所有其他键的引用,即使它们在子集中丢失 MultiIndex(lev
DataFrame
,列上有multi-index
(假设有3个级别):
当我通过第一级并产生数据帧的子集时:
def cluster(df):
for key in df.columns.levels[0]:
yield df[key]
for subdf in cluster(df):
print(subdf.columns)
列索引确实丢失了它的第一级,但是多索引
仍然包含对子级中所有其他键的引用,即使它们在子集中丢失
MultiIndex(levels=[['41B004', '41B005', '41B006', '41B008', '41B011', '41MEU1', '41N043', '41R001', '41R002', '41R012', '41WOL1', '41WOL2', 'T1M001', 'T1M003', 'T1M011'], [25, 26, 27, 28, 30, 31, 32, 3, ....
labels=[[4, 5, 6, 7, 9, 10], [24, 33, 47, 61, 83, 98]],
names=['sitekey', 'channelid'])
如何强制subdf的列多索引只使用存在的键进行更新?df.reset_index()
?这似乎不起作用
def cluster(df):
for key in df.columns.levels[0]:
d = df[key]
d.columns = pd.MultiIndex.from_tuples(d.columns.to_series())
yield d
def cluster(df):
for key in df.columns.levels[0]:
d = df[key]
d.columns = pd.MultiIndex.from_tuples(d.columns.to_series())
yield d