使用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
添加回答
举报
0/150
提交
取消