使用Pandas串联将一列添加到数据框

我有“ train_df”数据框,其中:

print(train_df.shape)

返回(997,600)。

现在我想将一列连接到此数据框,该列:

print(len(local_df["target"]))

返回997。

因此看来尺寸一切正常。

但问题是:

final_df = pd.concat([train_df, local_df["target"]], axis=1)
print(final_df.shape)

返回(1000,601)。而应该是(997,601)。

你知道是什么问题吗?


慕哥9229398
浏览 162回答 3
3回答

侃侃尔雅

我认为问题出在不同的索引值上,所以解决方案是通过reset_index使用参数创建相同的drop=True:final_df = pd.concat([train_df.reset_index(drop=True),                      local_df["target"].reset_index(drop=True)], axis=1)print(final_df.shape)或设置local_dfby的索引train_df.index:final_df = pd.concat([train_df,                      local_df["target"].set_index(train_df.index)], axis=1)print(final_df.shape)

森林海

加入怎么样?:import pandas as pddf=pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})df2=pd.DataFrame({'c':[232,543,562]})print(df.reset_index(drop=True).join(df2.reset_index(drop=True), how='left'))输出:   a  b    c0  1  4  2321  2  5  5432  3  6  562
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python