将一行DataFrame添加到另一个DataFrame的优雅方式

我有两个DataFrames,其中一个是单排DataFrame。我想dataframe在较大的所有行中添加一行。我可以解决它,但我正在寻找一个更简单的解决方案:

import pandas as pd
df1 = pd.DataFrame({'C':['car'],'D':['bus']})
print(df1)
     C    D
0  car  bus

df2 = pd.DataFrame({'A':[1,2,3],'B':[8,2,0]})
print(df2)
   A  B
0  1  8
1  2  2
2  3  0

我想将 DataFrame 线与较大的线连接起来。结果应该是。

   A  B    C    D
0  1  8  car  bus
1  2  2  car  bus
2  3  0  car  bus

我的尝试:dummy在两个 DataFrames 中都创建了一个列并做了一个left join,但这很不雅。我相信会有更简单的解决方案。

回答

我认为最优雅的是 use DataFrame.assign,但必须是字符串列名:

df2 = df2.assign(**df1.iloc[0])
print (df2)
   A  B    C    D
0  1  8  car  bus
1  2  2  car  bus
2  3  0  car  bus


df1.columns=[1,8]
print (df1)
     1    8
0  car  bus

df2 = df2.assign(**df1.iloc[0])
print (df2)

类型错误:assign() 关键字必须是字符串

如果匹配第一个索引值,则另一个解决方案有效:

df2 = df2.join(df1.reindex(df2.index, method='ffill'))
print (df2)
   A  B    C    D
0  1  8  car  bus
1  2  2  car  bus
2  3  0  car  bus


以上是将一行DataFrame添加到另一个DataFrame的优雅方式的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>