Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python的组合方法_Python_Pandas_Itertools - Fatal编程技术网

使用Python的组合方法

使用Python的组合方法,python,pandas,itertools,Python,Pandas,Itertools,我是Python新手,我正在尝试用两组不同的数据解决一个问题。我使用pandas.read\u csv创建了两个数据帧,s和c S Spread per1 per2 per3 acc 0 4.50% 1.26% 0.35% 0.50% 0.60% 1 4.45% 1.29% 0.35% 0.50% 0.60% 2 4.40% 1.31% 0.35% 0.50% 0.60% 3 4.35% 1.

我是Python新手,我正在尝试用两组不同的数据解决一个问题。我使用pandas.read\u csv创建了两个数据帧,s和c

S

  Spread   per1   per2   per3          acc
0  4.50%  1.26%  0.35%  0.50%        0.60%
1  4.45%  1.29%  0.35%  0.50%        0.60%
2  4.40%  1.31%  0.35%  0.50%        0.60%
3  4.35%  1.34%  0.35%  0.50%        0.60%
4  4.30%  1.37%  0.35%  0.50%        0.60%
c

     Cer     OO
0  1.00%  0.65%
1  1.05%  0.68%
2  1.10%  0.71%
3  1.15%  0.73%
4  1.20%  0.76%
所以我想做的是,对于来自c的Cer和OO的每一个组合,我想填充来自s的所有记录。(不确定这是否是一个好的解释方式)。请参见下面的示例

    Spread  per1    per2    per3    acc     Cer     OO
0   4.50%   1.26%   0.35%   0.50%   0.60%   1.00%   0.65%
1   4.45%   1.29%   0.35%   0.50%   0.60%   1.00%   0.65%
2   4.40%   1.31%   0.35%   0.50%   0.60%   1.00%   0.65%
3   4.35%   1.34%   0.35%   0.50%   0.60%   1.00%   0.65%
4   4.30%   1.37%   0.35%   0.50%   0.60%   1.00%   0.65%
5   4.50%   1.26%   0.35%   0.50%   0.60%   1.05%   0.68%
6   4.45%   1.29%   0.35%   0.50%   0.60%   1.05%   0.68%
7   4.40%   1.31%   0.35%   0.50%   0.60%   1.05%   0.68%
8   4.35%   1.34%   0.35%   0.50%   0.60%   1.05%   0.68%
9   4.30%   1.37%   0.35%   0.50%   0.60%   1.05%   0.68%
我读到熊猫和/或itertools可以帮我做这种分析?混淆之处在于,试图为dataframec中两个字段的每个组合从s创建所有记录时


同样,任何文档和/或见解方面的帮助都将非常有用。谢谢您

使用笛卡尔连接和
合并
以及临时键:

S.assign(key=1).merge(c.assign(key=1), on='key').drop('key', axis=1)
输出:

   Spread   per1   per2   per3    acc    Cer     OO
0   4.50%  1.26%  0.35%  0.50%  0.60%  1.00%  0.65%
1   4.50%  1.26%  0.35%  0.50%  0.60%  1.05%  0.68%
2   4.50%  1.26%  0.35%  0.50%  0.60%  1.10%  0.71%
3   4.50%  1.26%  0.35%  0.50%  0.60%  1.15%  0.73%
4   4.50%  1.26%  0.35%  0.50%  0.60%  1.20%  0.76%
5   4.45%  1.29%  0.35%  0.50%  0.60%  1.00%  0.65%
6   4.45%  1.29%  0.35%  0.50%  0.60%  1.05%  0.68%
7   4.45%  1.29%  0.35%  0.50%  0.60%  1.10%  0.71%
8   4.45%  1.29%  0.35%  0.50%  0.60%  1.15%  0.73%
9   4.45%  1.29%  0.35%  0.50%  0.60%  1.20%  0.76%
10  4.40%  1.31%  0.35%  0.50%  0.60%  1.00%  0.65%
11  4.40%  1.31%  0.35%  0.50%  0.60%  1.05%  0.68%
12  4.40%  1.31%  0.35%  0.50%  0.60%  1.10%  0.71%
13  4.40%  1.31%  0.35%  0.50%  0.60%  1.15%  0.73%
14  4.40%  1.31%  0.35%  0.50%  0.60%  1.20%  0.76%
15  4.35%  1.34%  0.35%  0.50%  0.60%  1.00%  0.65%
16  4.35%  1.34%  0.35%  0.50%  0.60%  1.05%  0.68%
17  4.35%  1.34%  0.35%  0.50%  0.60%  1.10%  0.71%
18  4.35%  1.34%  0.35%  0.50%  0.60%  1.15%  0.73%
19  4.35%  1.34%  0.35%  0.50%  0.60%  1.20%  0.76%
20  4.30%  1.37%  0.35%  0.50%  0.60%  1.00%  0.65%
21  4.30%  1.37%  0.35%  0.50%  0.60%  1.05%  0.68%
22  4.30%  1.37%  0.35%  0.50%  0.60%  1.10%  0.71%
23  4.30%  1.37%  0.35%  0.50%  0.60%  1.15%  0.73%
24  4.30%  1.37%  0.35%  0.50%  0.60%  1.20%  0.76%

谢谢,斯科特。在我的数据帧中,S的计数是94,C的计数是381。当我尝试执行该函数并创建一个新的数据帧时,我得到了28的计数。我不知道如何在编辑中显示我的代码。