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

将两个列表相乘以制作python数据框的智能方法

将两个列表相乘以制作python数据框的智能方法

慕尼黑的夜晚无繁华 2021-09-11 20:27:44
我有两个数据列表,它们是: a = [1,1,1, 0,0,0] b = [9,8,7, 6,5,4]我想要的输出是:df = [[9,9,9, 0,0,0],       [8,8,8, 0,0,0],       [7,7,7, 0,0,0],       [6,6,6, 0,0,0],       [5,5,5, 0,0,0],       [4,4,4, 0,0,0]]我目前正在做的是:for aa in a:    counter = 0    df = pd.DataFrame()    while counter<len(b):         df[counter] = pd.Series(b)*a[counter]        counter+=1这似乎绝对是低效的。在我的实际应用中,a 和 b 的大小非常大,因此效率问题上升。有什么聪明有效的方法来解决这个问题吗?任何建议将不胜感激
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

您可以使用外积np.outer并使用结果初始化熊猫数据框:


import numpy as np

import pandas as pd


a = [1,1,1, 0,0,0]

b = [9,8,7, 6,5,4]


pd.DataFrame(np.outer(b, a))


   0  1  2  3  4  5

0  9  9  9  0  0  0

1  8  8  8  0  0  0

2  7  7  7  0  0  0

3  6  6  6  0  0  0

4  5  5  5  0  0  0

5  4  4  4  0  0  0


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

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