我有“ 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)
森林海
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
添加回答
举报
0/150
提交
取消