如何在Pandas DataFrame中添加列而不将列添加到其原始数据框架中



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)

最新更新