将一行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