Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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_Merge_Dataframe_Series - Fatal编程技术网

Python 将数据帧与序列合并

Python 将数据帧与序列合并,python,pandas,merge,dataframe,series,Python,Pandas,Merge,Dataframe,Series,我的一位同事正在尝试将矩阵和序列结合起来,并试图看看是否有一种方法可以代替循环 例如,如果我有一个由 1, 2, 3 4, 5, 6 7, 8, 9 和一系列的值 13, 14, 15 那么期望的结果将是 1, 2, 3, 13 1, 2, 3, 14 1, 2, 3, 15 4, 5, 6, 13 4, 5, 6, 14 4, 5, 6, 15 7, 8, 9, 13 7, 8, 9, 14 7, 8, 9, 15 是否有一种具体的方法来实现这种效果。我不确定具体搜索什么来找到这个,我头

我的一位同事正在尝试将矩阵和序列结合起来,并试图看看是否有一种方法可以代替循环

例如,如果我有一个由

1, 2, 3
4, 5, 6
7, 8, 9
和一系列的值

13, 14, 15
那么期望的结果将是

1, 2, 3, 13
1, 2, 3, 14
1, 2, 3, 15
4, 5, 6, 13
4, 5, 6, 14
4, 5, 6, 15
7, 8, 9, 13
7, 8, 9, 14
7, 8, 9, 15

是否有一种具体的方法来实现这种效果。我不确定具体搜索什么来找到这个,我头脑中的几次类似尝试都失败了。

你可以用merge来做这件事。如果需要完整的笛卡尔积,可以执行以下操作:

import pandas as pd
df = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]])
df['key'] = 0
ser = pd.DataFrame({'data': [13,14,15], 'key': [0] * 3})

result = pd.merge(df, ser, on = 'key').drop('key', axis = 1)

我已经检查了结果,看起来像你们想要的。如果您在中搜索“关于合并方法(关系代数)的简短入门”的更多信息。

有人发布了一个答案,帮助我获得了我想要的,但在我回来接受之前删除了它

基本上,我需要做的是使系列a成为数据帧,并为两者添加一个公共列,假设它们被称为a和b I

In [1]: import pandas as pd

In [2]: a = pd.DataFrame({1:[1,4,7],2:[2,5,8],3:[3,6,9]})

In [3]: a
Out[3]:
   1  2  3
0  1  2  3
1  4  5  6
2  7  8  9


In [5]: b = pd.DataFrame({4:[13,14,15]})

In [6]: b
Out[6]:
    4
0  13
1  14
2  15

In [7]: a["key"] = 1

In [8]: b["key"] = 1

In [9]: c = a.merge(b, on="key")

In [10]: c
Out[10]:
   1  2  3  key   4
0  1  2  3    1  13
1  1  2  3    1  14
2  1  2  3    1  15
3  4  5  6    1  13
4  4  5  6    1  14
5  4  5  6    1  15
6  7  8  9    1  13
7  7  8  9    1  14
8  7  8  9    1  15

In [11]: del c["key"]

In [12]: c
Out[12]:
   1  2  3   4
0  1  2  3  13
1  1  2  3  14
2  1  2  3  15
3  4  5  6  13
4  4  5  6  14
5  4  5  6  15
6  7  8  9  13
7  7  8  9  14
8  7  8  9  15

In [13]:

可能与以下内容有关:我们是否可以假设序列和数据帧使用相同的索引值?