簡體   English   中英

Pandas 將兩個表中的值合並到列中

[英]Pandas merge values from two tables into on column

我想將一個表中的值合並到一個新列中,然后將另一個表中的任何缺失值合並到同一列中:

arr1 = pd.DataFrame(['a'],['b'],['c'])
arr2 = pd.DataFrame(['a',1],['b',2])
arr3 = pd.DataFrame(['c',3])


output = [['a',1],['b',2],['c',3']]

加入 arr2 和 arr3 然后合並不是一種選擇,因為在我的實際應用中它們的列數不同。

您可以使用pd.concat連接arr2arr3 它將通過用nan填充缺失的數據來處理任何額外的列。 讓我們在您的數據中添加一個額外的列來展示它是如何工作的:

arr2 = pd.DataFrame([['a',1,'extra column'],['b',2,'extra column']], index=None)
arr3 = pd.DataFrame([['c',3]], index=None)

arr2

0 1 2
0 一個 1 額外的列
1 b 2 額外的列

arr3

0 1
0 c 3

然后連接:

new_df = pd.concat([arr2, arr3], ignore_index=True)
0 1 2
0 一個 1 額外的列
1 b 2 額外的列
2 c 3

更新:要解決 dataframe 不適合 memory 的問題,您可以使用dask

import dask.dataframe as dd
import pandas as pd

arr2 = pd.DataFrame([['a',1,'extra column'],['b',2,'extra column']], index=None)
arr3 = pd.DataFrame([['c',3]], index=None)

ddf1 = dd.from_pandas(arr2, 1)
ddf2 = dd.from_pandas(arr3, 1)

dd_final = dd.concat([ddf1, ddf2])

Output dd_final.compute()

0 1 2
0 一個 1 額外的列
1 b 2 額外的列
0 c 3

暫無
暫無

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

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