[英]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_train
有id
為索引和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.