簡體   English   中英

將數據框與系列合並

[英]Merging a dataframe with a 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

有沒有熊貓特有的方法來達到這種效果。 我不確定要進行什么專門搜索才能找到此答案,並且幾次嘗試在我的腦海中都足夠相似。

您可以通過合並來做到這一點。 如果要使用完整的笛卡爾積,可以執行以下操作:

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)

我檢查了結果,它看起來像您想要的。 如果您在pandas文檔中搜索“關於合並方法的簡要入門(關系代數)”,則更多信息。

有人發布了一個答案,幫助我獲得了想要的東西,但是在我回來之前就刪除了它。

基本上,我需要做的是將Series變成一個數據框,並在兩者中添加一個公用列,假設它們分別稱為a和bi

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]:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM