[英]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
連接arr2
和arr3
。 它將通過用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.