繁体   English   中英

连接两个索引长度不同的 Pandas DataFrame 列

[英]Concat two Pandas DataFrame column with different length of index

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

在此处输入图像描述

利用:

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)

然后用DataFrame.set_index覆盖现有值:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM