我有一个像下面这样的数据框,
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)
关于python - 如何有效地乘以数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56898305/