从API它不是我清楚如何使用
from_arrays()
,from_product()
,from_tuples()
或from_frame()
正确。
它主要用于生成具有独立于原始列名称的MultiIndex的新DataFrame时。
因此,这意味着如果需要全新的内容MultiIndex
,例如通过列表或数组:
a = ['a','a','b']
b = ['x','y','z']
df.columns = pd.MultiIndex.from_arrays([a,b])
print (df)
a b
x y z
sample
0 2 3 5
1 4 5 7
EDIT1:如果要以MultiIndex
所有方式将所有列设置为所有列而没有最后一个:
a = ['parent'] * (len(df.columns) - 1) + ['label']
b = df.columns[:-1].tolist() + ['val']
df.columns = pd.MultiIndex.from_arrays([a,b])
print (df)
parent label
feature a feature b val
sample
0 2 3 5
1 4 5 7
可能通过split
,但是如果某些不带分隔符NaN
的列为第二级,则为s,因为不可能组合MultiIndex而不是MultiIndex列(实际上是,但是从MultiIndex列获取元组):
print (df)
feature_a feature_b label
sample
0 2 3 5
1 4 5 7
df.columns = df.columns.str.split(expand=True)
print (df)
feature label
a b NaN
sample
0 2 3 5
1 4 5 7
更好的方法是将所有不带分隔符的列都转换为Index/MultiIndex
first DataFrame.set_index
:
df = df.set_index('label')
df.columns = df.columns.str.split(expand=True)
print (df)
feature
a b
label
5 2 3
7 4 5
为了防止使用原始索引append=True
参数:
df = df.set_index('label', append=True)
df.columns = df.columns.str.split(expand=True)
print (df)
feature
a b
sample label
0 5 2 3
1 7 4 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句