Skip to main content
 首页 » 编程设计

python之如何有效地乘以数据框

2025年05月04日20yxwkf

我有一个像下面这样的数据框,

df=pd.DataFrame({'col1':[1,2,3,4,5],'col2':list('abcde')}) 

我想根据其内容的长度复制数据框。

基本上我想让 col1 中的每个值与 col2 的全部内容相加。

输入:

   col1 col2 
0     1    a 
1     2    b 
2     3    c 
3     4    d 
4     5    e 

O/P:

    col1 col2 
0      1    a 
1      1    b 
2      1    c 
3      1    d 
4      1    e 
5      2    a 
6      2    b 
7      2    c 
8      2    d 
9      2    e 
10     3    a 
11     3    b 
12     3    c 
13     3    d 
14     3    e 
15     4    a 
16     4    b 
17     4    c 
18     4    d 
19     4    e 
20     5    a 
21     5    b 
22     5    c 
23     5    d 
24     5    e 

为此我使用了这个,

op=[] 
for val in df.col1.values: 
    temp=df.copy() 
    temp['col1']=val 
    op.append(temp) 
print(pd.concat(op,ignore_index=True)) 

我想以更好的方式获得准确的输出(不包括循环)

请您参考如下方法:

与拆叠:

pd.DataFrame(index=df.col2,columns=df.col1).unstack().reset_index().drop(0,1)