繁体   English   中英

将一个数据框的所有重复列值添加到 Pandas 中的另一个数据框

[英]Add all column values repeated of one data frame to other in pandas

有两个数据框:

df1 = pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})

   a  b
0  1  4
1  2  5
2  3  6

df2 = pd.DataFrame({'c':[7],'d':[8]})

   c  d
0  7  8

目标是将所有df2列值添加到df1 ,重复并创建以下结果。 假设两个数据框不共享任何列名。

   a  b  c  d
0  1  4  7  8
1  2  5  7  8
2  3  6  7  8

如果有字符串列名称是可能的,使用DataFrame.assign和通过选择df2第一行创建的解包Series

df = df1.assign(**df2.iloc[0])
print (df)
   a  b  c  d
0  1  4  7  8
1  2  5  7  8
2  3  6  7  8

另一个想法是通过df1.indexDataFrame.reindex重复值并使用DataFrame.join (这里df2第一个索引值与df1.index第一个索引值df1.index ):

df = df1.join(df2.reindex(df1.index, method='ffill'))
print (df)
   a  b  c  d
0  1  4  7  8
1  2  5  7  8
2  3  6  7  8

如果原始df没有缺失值可能在最后一步使用前向填充缺失值,但类型也更改为浮点数,谢谢@Dishin H Goyan:

df = df1.join(df2).ffill()
print (df)
   a  b    c    d
0  1  4  7.0  8.0
1  2  5  7.0  8.0
2  3  6  7.0  8.0

暂无
暂无

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

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