我有一个数据框df1
,其中有M
行和n*N
列。列名为
1.1,...,1.N,2.1,...,2.N,...n.1,...n.N
行被索引为1,...M
。
将n * M行索引为df2
和1.1,...,1.M,...,n.1,...n.M
列名为N
的n * M行,将其转换为新数据框1,...,N
的一种优雅方法是
df2.iloc[i*M+j,:]==df1.iloc[j,i*n:(i+1)*N]
答案 0 :(得分:2)
将Series.str.split
与DataFrame.stack
一起使用,并最后将MultiIndex
展平f-string
s:
df.columns = df.columns.str.split('.', expand=True)
df = df.stack(0)
df.index = [f'{a}.{b}' for a, b in df.index]