Pandas:使用具有相同固定重复次数的dataframe结构填充固定数量的新列

2024-09-25 08:34:38 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我为标题道歉,但这很难解释

我有一个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来手动填充第二个太慢了,无法使用,有没有快速(er)的方法来实现这一点

谢谢大家!


Tags: 标题dataframeetcxb1xa1xb3xb2xa3
1条回答
网友
1楼 · 发布于 2024-09-25 08:34:38

我可能会尝试旋转数据帧。我认为您必须添加另一个列才能使其正常工作(最终您的列将有一个多索引)

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

如果需要,您可以很容易地将多索引压缩到单个级别

相关问题 更多 >