熊猫:使用固定数量重复的数据结构填充固定数量的新列

时间:2018-11-30 00:02:53

标签: python pandas

首先我为标题表示歉意,但这很难表述。

所以我有一个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是索引,AB是列。 Dataframe始终具有相同数量的重复索引3。

我只希望有一个索引和具有对应值的三倍以上的列,例如:

I | A1  | A2  | A3  | B1  | B2  | B3  |
---------------------------------------
x | xA1 | xA2 | xA3 | xB1 | xB2 | xB3
...etc

DataFrame在我的项目中确实很大,因此使用iterrows进行迭代以手动填充第二个太慢而无法使用,有没有较快的方法呢? / p>

谢谢!

1 个答案:

答案 0 :(得分:1)

我可能会尝试旋转数据框。我认为您必须投入另一列以使其正常运行(并且您最终将获得multiIndex列)

df['idx_level'] = list(range(0,3)) * (df.shape[0] / 3)
pivoted_df = df.pivot(index = None, columns = 'idx_level')

如果需要,可以很容易地将multiIndex压缩到单个级别。