簡體   English   中英

合並單個 pandas 數據框中的兩列

[英]Merging two columns in a single pandas data frame

我有以下數據框:

df = pd.DataFrame({'id': [0.1, 0.2, 0.3, 0.4],'A': [1,2, np.NaN, np.NaN], 'A1': [np.NaN, np.NaN, 3,4]})

我希望將 A1 合並到 A(刪除 A1)中,結果應該是:

df = pd.DataFrame({'id': [0.1, 0.2, 0.3, 0.4, 0.1, 0.2, 0.3, 0.4],'A': [1,2, np.NaN, np.NaN, np.NaN, np.NaN, 3,4]})

感謝任何幫助。

您可以concat兩列:

pd.concat([df[['id', 'A']], df[['id', 'A1']].rename(columns={'A1': 'A'})],
          ignore_index=True)

或者melt rename / drop

df.melt('id').rename({'value': 'A'}).drop(columns='variable')

output:

    id    A
0  0.1  1.0
1  0.2  2.0
2  0.3  NaN
3  0.4  NaN
4  0.1  NaN
5  0.2  NaN
6  0.3  3.0
7  0.4  4.0

一種選擇是使用pyjanitorpivot_longer 列有一個模式,它們都以A開頭,我們可以在重塑中利用它來發揮我們的優勢:

# pip install pyjanitor
import janitor
import pandas as pd
df.pivot_longer('id', names_to = 'A', names_pattern=['A'])

    id    A
0  0.1  1.0
1  0.2  2.0
2  0.3  NaN
3  0.4  NaN
4  0.1  NaN
5  0.2  NaN
6  0.3  3.0
7  0.4  4.0

暫無
暫無

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

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