python - 用对另一个列表中的每个项目重复的列表填充 Dataframe 列
问题描述
我有两个要用于计算的数字列表,但它们的长度不同。
list_1 = [123, 456, 789, 987]
list_2 = [321, 654]
由于总共有 4x2 = 8 个组合,我想让它们像这样输出:
Calc_1 Calc_2
Calc_of_list_1_num_1 Calc_of_list_2_num_1
Calc_of_list_1_num_2 Calc_of_list_2_num_1
Calc_of_list_1_num_3 Calc_of_list_2_num_1
Calc_of_list_1_num_4 Calc_of_list_2_num_1
Calc_of_list_1_num_1 Calc_of_list_2_num_2
Calc_of_list_1_num_2 Calc_of_list_2_num_2
Calc_of_list_1_num_3 Calc_of_list_2_num_2
Calc_of_list_1_num_4 Calc_of_list_2_num_2
我一直在努力解决这个问题,我只是不知道如何处理它。
解决方案
使用 numpy 的np.ufunc.outer:
示例添加:
np.add.outer(list_1,list_2)
输出:
array([[ 444, 777],
[ 777, 1110],
[1110, 1443],
[1308, 1641]])
创建数据框:
pd.DataFrame(np.add.outer(list_1,list_2), columns=list_2, index=list_1)
输出:
321 654
123 444 777
456 777 1110
789 1110 1443
987 1308 1641
对于乘法使用 np.outer:
np.outer(list_1,list_2)
输出:
array([[ 39483, 80442],
[146376, 298224],
[253269, 516006],
[316827, 645498]])
对于数据框:
pd.DataFrame(np.outer(list_1,list_2), columns=list_2, index=list_1)
输出:
321 654
123 39483 80442
456 146376 298224
789 253269 516006
987 316827 645498
推荐阅读
- batch-file - CMD:从 .txt 文件中提取变量字符串
- typescript - 来自 RxJS Observables 的数据流是通过引用还是值?
- react-native - React Native 中的屏幕刷新问题
- python - 无法在 Jupyter 或 iPython 中使用 RDKit
- r - 跨分组数据的横截面相关性并汇总在乳胶表中
- javascript - 使用画布和 javascript 的进度变量
- flutter - 颤振小部件中的问题未在 vscode 中完全生成
- r - 尝试重新编码时发生变异错误 - 找不到对象
- html - 为什么没有两个水平相邻的网格单元?
- c# - c# Web API 在使用 React Native Fetch Call 时在 Endpoint 调用 Post 未触发