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

标签 python pandas

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

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/

相关文章:

python - 在Python中使用后释放缓冲区空间?

python - 从帧字节获取帧值

python - 创建大于该范围的随机样本

python - Trustpilot 网络抓取,空输出

python - 如何使用分组依据并返回具有空值的行

python - 在几天内获得 Pandas DatetimeIndex 系列差异的最佳方法?

python - 计算不包含某些字符串 Pandas DataFrames 的行

Python - 如何在替换字符串后保存保存文件

python - PyQt - 如何使用 QItemDelegate 在表格 View 中设置 QComboBox

javascript - 如何从发出警报的页面恢复 "text",尤其是在人类用户在页面的 **警报** 上 *单击* 后?