首先我为标题表示歉意,但这很难表述。
所以我有一个DataFrame
,看起来像这样:
I | A | B
-------------
x | xA1 | xB1
x | xA2 | xB2
x | xA3 | xB3
y | yA1 | yB1
y | yA2 | yB2
y | xA3 | yB3
z | zA1 | zB1
z | zA2 | zB2
z | zA3 | zB3
...etc
其中I
是索引,A
和B
是列。
Dataframe
始终具有相同数量的重复索引3。
我只希望有一个索引和具有对应值的三倍以上的列,例如:
I | A1 | A2 | A3 | B1 | B2 | B3 |
---------------------------------------
x | xA1 | xA2 | xA3 | xB1 | xB2 | xB3
...etc
DataFrame
在我的项目中确实很大,因此使用iterrows
进行迭代以手动填充第二个太慢而无法使用,有没有较快的方法呢? / p>
谢谢!
答案 0 :(得分:1)
我可能会尝试旋转数据框。我认为您必须投入另一列以使其正常运行(并且您最终将获得multiIndex列)
df['idx_level'] = list(range(0,3)) * (df.shape[0] / 3)
pivoted_df = df.pivot(index = None, columns = 'idx_level')
如果需要,可以很容易地将multiIndex压缩到单个级别。