簡體   English   中英

如何添加列而不在pandas數據框中的原始數據框中添加列?

[英]How to add column without adding column to its original data frame in pandas dataframe?

我復制一個數據框,然后在復制的一個數據框中添加一列,但這將導致向原始數據框添加列。

X_train_1 = X_train
X_train_1["class_label"] = y_train
print(X_train.columns)

如前所述在這里 ,你需要復制數據框。 檢查以下最小樣本:

import pandas as pd

X_train = pd.DataFrame([{'a': 1, 'b': 2}, {'a': 2, 'b': 3}, {'a': 3, 'b': 4}, {'a': 4, 'b': 5}])
X_train_1 = X_train.copy()
print(X_train_1)
X_train_1["class_label"] = ['one', 'two', 'three', 'four']
print(X_train)

當你寫

X_train_1 = X_train

它基本上是通過引用螞蟻而不是值來分配變量。 因此,無論您對新變量進行了什么更改,它實際上都會修改原始變量。 例如,如果嘗試使用列表執行此操作,則會觀察到相同的行為。 如其他人所建議,使用

X_train_1 = X_train.copy()。

在復制數據框時,您應該使用復制方法來復制數據框,而不僅僅是輔助新的數據框。 以下代碼不會導致對原始數據幀進行任何修改。

X_train_1 = X_train.copy()
X_train_1["class_label"] = y_train
print(X_train.columns)

暫無
暫無

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

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