Concat两个索引长度不同的数据帧列

2024-04-29 22:31:09 发布

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

当新数据列的行数较少时,如何将数据帧的合并列添加到另一个数据帧?具体地说,我需要在合并数据帧的前几行(而不是最后几行)使用NaN填充新的数据列。请参考图片。谢谢

enter image description here


Tags: 数据图片nan少时
1条回答
网友
1楼 · 发布于 2024-04-29 22:31:09

使用:

df1 = pd.DataFrame({
        'A':list('abcdef'),
        'B':[4,5,4,5,5,4],
})

df2 = pd.DataFrame({
        'SMA':list('rty')
})

df3 = df1.join(df2.set_index(df1.index[-len(df2):]))

或:

df3 = pd.concat([df1, df2.set_index(df1.index[-len(df2):])], axis=1)
print (df3)
   A  B  SMA
0  a  4  NaN
1  b  5  NaN
2  c  4  NaN
3  d  5    r
4  e  5    t
5  f  4    y

工作原理:

第一个是从后面按长度df2选择df1中的索引:

print (df1.index[-len(df2):])
RangeIndex(start=3, stop=6, step=1)

然后用^{}覆盖现有值:

print (df2.set_index(df1.index[-len(df2):]))
  SMA
3   r
4   t
5   y

相关问题 更多 >