Python concat后数据形状的变化

Python concat后数据形状的变化,python,pandas,Python,Pandas,我运行的是一个随机森林,我根据概率进行预测。然而,当我在概率中使用一个条件并创建一个新列并最终与测试数据合并时,数据的形状不正确。最终数据集的形状加倍。 代码如下: import pandas as pd df = pd.DataFrame({'A':["bad", "good", "better", "good", "better", "good", "b

我运行的是一个随机森林,我根据概率进行预测。然而,当我在概率中使用一个条件并创建一个新列并最终与测试数据合并时,数据的形状不正确。最终数据集的形状加倍。 代码如下:

import pandas as pd
df = pd.DataFrame({'A':["bad",  "good", "better",   "good", "better",   "good", "better",   "good", "better",   "bad",  "good", "better",   "good", "better",   "bad",  "good", "better",   "bad",  "good", "better",   "good", "better",   "bad"],
                   'B': [3803,  1062,   4862,   6356,   2171,   532,    6982,   891,    1961,   3631,   1626,   1507,   3069,   2793,   721,    4288,   1601,   1439,   5807,   5054,   2411,   2913,   3505],
                   'C': [1318,  2537,   2315,   4967,   4483,   1433,   529,    1262,   1583,   506,    2576,   289,    3740,   3087,   309,    3493,   1862,   2666,   1231,   1828,   4144,   3503,   3102]
})
print(df)

# #Declare feature vector and target variable
X=df.drop(['A'],axis='columns',inplace=False)

y=df['A']

# split data into training and testing sets

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20, random_state = 42)


y_pred = clf.predict_proba(X_test)## getting the probability


test_pred_df = pd.DataFrame(data = y_pred, 
                        columns = ["bad",
                                   "better", "good"])
def score(x):
    if x<=0.2:
        return 'Low_risk'
    elif x>0.2 and x<=0.3:
        return 'Medium_Risk'
    else: return 'High_Risk'
test_pred_df['risk_segment']=test_pred_df.apply(lambda x:score(x['bad']),axis=1)

test_pred_df['risk_segment'].value_counts()

x_test_final=pd.concat([X_test,test_pred_df])

X_test.shape
x_test_final.shape
将熊猫作为pd导入
df=pd.DataFrame({'A':[“坏”、“好”、“更好”、“更好”、“更好”、“更好”、“更好”、“更好”、“坏”、“好”、“更好”、“好”、“更好”、“更好”、“更好”、“更好”、“更好”、“好”、“坏”],
‘B’:[3803、1062、4862、6356、2171、532、6982、891、1961、3631、1626、1507、3069、2793、721、4288、1601、1439、5807、5054、2411、2913、3505],
‘C’:[1318253723154967448314335291262583506 25762893740308730934931862261231828144443503102]
})
打印(df)
##声明特征向量和目标变量
X=df.drop(['A'],axis='columns',inplace=False)
y=df['A']
#将数据拆分为训练集和测试集
从sklearn.model\u选择导入列车\u测试\u拆分
X_序列,X_测试,y_序列,y_测试=序列测试分割(X,y,测试大小=0.20,随机状态=42)
y_pred=clf.predict_proba(X_test)#得到概率
test_pred_df=pd.DataFrame(数据=y_pred,
列=[“坏”,
“更好”、“好”])
def分数(x):

如果x0.2和xCan包含您的全部代码?您何时声明
clf=…
?你能把它也贴出来吗?