为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

holdtom 2021-04-02 14:11:18
使用pandas-python:我有一个可以说的现有数据框 Dataframe A (18 rows, 40 columns)。我创建了一个我们可以命名的新数据框Dataframe B (18 rows, 127 columns)(这并不完全重要)。我想循环遍历Dataframe A(或不循环遍历)每一列,并将每列复制到Dataframe B...,除了,我想在每列A除从0开始的第4列以外的每列上复制3次。例如:如果col_headers的A前5分别为[0,1,2,3,4],我想关联的col_headers用相同的值是上B为: [0,1,1,1,2,2,2,3,3,3,4]我正在尝试使用内置的potentailly函数来执行这样的过程,以查看是否存在一种快速循环或不循环的方法。我已经想出了一种方法来进行循环,但是如果可能的话,我试图避免进行繁重的计算。
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

首先按所需顺序创建列标识符列表。然后使用pd.DataFrame.iloc。请注意iloc,与NumPy一样,它接受重复的整数以按位置进行索引。


这是一个演示:


from itertools import chain


df = 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   4

0  1  2  2  2  3  3  3  4  4  4   5

1  6  7  7  7  8  8  8  9  9  9  10


查看完整回答
反对 回复 2021-04-13
  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信