pandas 当连接两个 Dataframe 时,添加额外的行

56lgkhnf  于 2023-03-21  发布在  其他
关注(0)|答案(1)|浏览(118)

我试图连接两个Pandas Dataframe ,但不幸的是它不工作,这是以下代码:

train_df =pd.concat([x_train,y_train],axis =1 )

print(train_df)

y_train和x_train的长度相同,并且大小和行索引都正确,我只希望将它们连接起来,就像将两个矩阵连接在一起一样。

Age  Sex  HighChol   BMI  ...  PhysHlth  DiffWalk  HighBP  Diabetes
0     10.0  1.0       1.0  33.0  ...      30.0       0.0     1.0       NaN
1     10.0  1.0       0.0  21.0  ...      30.0       1.0     1.0       1.0
2      4.0  0.0       0.0  32.0  ...       7.0       0.0     0.0       1.0
3     11.0  1.0       1.0  35.0  ...      10.0       1.0     1.0       0.0
4     10.0  0.0       1.0  27.0  ...       0.0       0.0     1.0       1.0
...    ...  ...       ...   ...  ...       ...       ...     ...       ...
996    3.0  0.0       1.0  33.0  ...       0.0       0.0     0.0       0.0
997    9.0  0.0       1.0  41.0  ...      30.0       1.0     1.0       0.0
998   12.0  0.0       1.0  34.0  ...       0.0       0.0     1.0       1.0
999    6.0  0.0       0.0  31.0  ...       0.0       0.0     0.0       0.0
1000   NaN  NaN       NaN   NaN  ...       NaN       NaN     NaN       1.0
[1001 rows x 15 columns]

因为某种原因好像加了一行nan
编辑:显然y_train是一个系列

avwztpqn

avwztpqn1#

y_trainx_train索引之间有一个移位:x_train索引范围为0-999,而y_train索引范围为1-1000。
pd.concat使用此索引对齐行。解决方法是:

train_df = x_train.copy()
train_df['Diabetes'] = y_train.values

# Or
train_df = pd.concat([x_train, y_train.reset_index(drop=True)], axis=1)

但是要小心,你必须找到为什么你有这个转变。
注意:y_train是一个名称为DiabetesSeries,这就是为什么train_df的最后一列是Diabetes

相关问题