同一列的多个副本到新数据框中

使用pandas-python

我有一个可以说的现有数据框 Dataframe A (18 rows, 40 columns)

我创建了一个我们可以命名的新数据框Dataframe B (18 rows, 127 columns)(这并不完全重要)。

我想循环遍历Dataframe A(或不循环遍历)每一列,并将每列复制到Dataframe B...,除了,我想在每列A除从0开始的第4列以外的每列上复制3次。

例如:
如果col_headersA前5分别为[0,1,2,3,4],我想关联的col_headers用相同的值是上B为: [0,1,1,1,2,2,2,3,3,3,4]

我正在尝试使用内置的potentailly函数来执行这样的过程,以查看是否存在一种快速循环或不循环的方法。我已经想出了一种方法来进行循环,但是如果可能的话,我试图避免进行繁重的计算。


holdtom
浏览 136回答 2
2回答

开心每一天1111

首先按所需顺序创建列标识符列表。然后使用pd.DataFrame.iloc。请注意iloc,与NumPy一样,它接受重复的整数以按位置进行索引。这是一个演示:from itertools import chaindf = pd.DataFrame([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]],                  columns=[0, 1, 2, 3, 4])L = list(chain.from_iterable([[j]*3 if i%4 else [j] \         for i, j in enumerate(df.columns)]))res = df.iloc[:, L]print(res)   0  1  1  1  2  2  2  3  3  3   40  1  2  2  2  3  3  3  4  4  4   51  6  7  7  7  8  8  8  9  9  9  10
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python