使用pandas连接将列添加到数据帧

2021-02-25 21:56:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有“train_df”数据帧,它:

print(train_df.shape)

返回(997600)。在

现在我想将一列连接到这个数据帧,它:

^{pr2}$

返回997。在

所以看起来所有的维度都没问题。在

但问题是:

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

返回(1000601)。 而它应该是(997601)。在

你知道问题出在哪里吗?在

3条回答
网友
1楼 ·

我认为问题在于索引值不同,所以解决方案是通过^{}和参数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)

或按train_df.index设置local_df的索引:

^{pr2}$
网友
2楼 ·

您可以assign一个numpy数组作为一个新列。在

final_df = train_df.assign(target=local_df["target"].values)

对于熊猫来说,>;=0.24

^{pr2}$
网友
3楼 ·

加入怎么样?公司名称:

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'))

输出:

^{pr2}$

相关问题