为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥9229398 2021-05-11 13:14:23
我有“ 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)。你知道是什么问题吗?
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

我认为问题出在不同的索引值上,所以解决方案是通过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)


查看完整回答
反对 回复 2021-05-18
?
森林海

TA贡献2011条经验 获得超2个赞

加入怎么样?:


import pandas as pd

df=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    c

0  1  4  232

1  2  5  543

2  3  6  562


查看完整回答
反对 回复 2021-05-18
  • 3 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信