簡體   English   中英

pandas:如何根據列值在一個數據幀中從另一個數據幀中 append 行?

[英]pandas: How can I append rows in one data frame from another based on column values?

這個問題有點難以解釋。 我有一個包含 110 列的數據集“Tab1”。 這是在線實驗的數據。 第二個表“Tab2”由“Tab1”的實驗結果組成,該表有 20 列。 這兩個表中的“exp_num”列是通用的,而列的 rest 是不同的。

舉個例子,我有 20 個實驗,每個實驗有 6 條記錄,即“Tab1”中共有 120 條記錄。 讓我們以一個實驗“exp1”為例。 在第 6 條記錄(本實驗的最后一個結果)之后,將附加來自“Tab2”的本實驗結果。 在下一個實驗“exp2”和“exp2”的最后一條記錄之后,再次附加來自“Tab2”的“exp2”的結果,依此類推。

結構應如下所示:

圖片

黃色標記的數據來自“Tab1”,灰色標記的數據來自“Tab2”

我認為你想要的實際上是一個連接或 pandas.concat。

這是一個完整的例子。

import pandas as pd
import numpy as np

d1 = {'exp_num': ['aw23','aw23','aw23','aw23','aw23'], 'colA': [2,2,2,2,2], 'colB': [3,3,3,3,3], 'colC': [4,4,4,4,4]}
df1 = pd.DataFrame(data=d1)

d2 = {'exp_num': ['aw23','aw23'], 'colD': [1,2], 'ColE': [3,4]}
df2 = pd.DataFrame(data=d2)

顯示示例數據框

df1.head(5)

df2.head(5)

這是連接和結果

df3 = pd.concat([df1,df2], ignore_index=True)
df3.head(10)

只是為了知識分享。 找到所需內容的最簡單方法可能是 pandas 備忘單https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf#

如果那是正確的答案,請標記它。 謝謝:)

最好的法比

暫無
暫無

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

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