簡體   English   中英

如何根據在 dataframe2 中創建的列在 dataframe1 中創建列,該列是通過在 dataframe1 上使用 groupby() 導出的

[英]How create a column in dataframe1 based on a column created in dataframe2, which is derived by using groupby() on dataframe1

首先,我為標題措辭不當而道歉。

我有 2 個熊貓數據框。 X_train 和 crunched_X_train。
crunched_X_train 是通過在名為 id 的列上使用 groupby() 從 X_train 派生的。
然后我在 crunched_X_train 上做了一些事情,這樣我在這個名為 label 的數據框中創建了一個新列。 對於 crunched_X_train 中的每個 id,該行中有一個標簽。 label 是一個介於 0 和 3 之間的數字。我想將此標簽列添加到原始 X_train 中,這樣對於 X_train 中的每個 id,該行上都會有一個來自 crunched_X_train 的標簽。

我會盡量用表格更好地解釋。
我省略了表中無關緊要的列。
嘎吱嘎吱的_X_train:


id  label
                        
1   2
2   0
3   1
4   3
5   2

我希望 X_train 看起來像,帶有新的列標簽:


id  label
1   2
1   2    
1   2
.
.
2   0
2   0
3   1
3   1


我希望我可以這樣做,但它拋出
ValueError:只能比較標記相同的系列對象

X_train["label"] = crunched_X_train["label"].loc[crunched_X_train["id"] == X_train["id"]]

然后我嘗試了這種迭代方法,它似乎有效。 但這是不好的做法,需要永遠。

for index, row in X_train.iterrows():
    row["label"] = crunched_X_train["label"].loc[crunched_X_train["id"] == row["id"]]


任何幫助表示贊賞。 謝謝。

在GROUPBY后,ID列的索引crunched_X_train 然后您可以只將該索引連接到原始數據幀(其中id是一列):

X_train.join(crunched_X_train["label"], on="id")

假設crunched_X_trainid為索引和X_train評選的一列id

在此處查看熊貓文檔: pandas.pydata.org/docs/reference/api/pandas.DataFrame.join.html

謝謝告訴我 join() 存在的人。

X_train.join(crunched_X_train["label"], on="id", lsuffix = "label")

暫無
暫無

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

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