i复制数据框,然后添加一列复制一个dataFrame,但这将导致将列添加到Orignal 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
它基本上通过参考ant分配了变量,而不是按值分配。因此,无论您对新变量所做的更改实际上都会修改原始变量。例如,如果尝试使用列表进行此操作,您将观察到同样的行为。正如别人建议的
x_train_1 = x_train.copy((。
复制数据框时,您应该使用复制方法来复制数据框架,而不仅仅是对新的数据框架进行调整。以下代码不会导致原始数据框中的任何修改。
X_train_1 = X_train.copy()
X_train_1["class_label"] = y_train
print(X_train.columns)