[英]Combine and fill a Pandas Dataframe with the single row of another
如果我有兩個數據框:
df1 = pd.DataFrame({'A':[10,20,15,30,45], 'B':[17,33,23,10,12]})
A B
0 10 17
1 20 33
2 15 23
3 30 10
4 45 12
df2 = pd.DataFrame({'C':['cat'], 'D':['dog'], 'E':['emu'], 'F':['frog'], 'G':['goat'], 'H':['horse'], 'I':['iguana']})
C D E F G H I
0 cat dog emu frog goat horse iguana
如何組合兩個數據幀並填充df1
,其中每一行都是df2
的副本?
這是我到目前為止所擁有的。 代碼按預期工作,但如果我有數百列,那么我預計會有比我當前方法更簡單的方法:
df1 = df1.assign(C = lambda x: df2.C[0],
D = lambda x: df2.D[0],
E = lambda x: df2.E[0],
F = lambda x: df2.F[0],
G = lambda x: df2.G[0],
H = lambda x: df2.H[0],
I = lambda x: df2.I[0])
A B C D E F G H I
0 10 17 cat dog emu frog goat horse iguana
1 20 33 cat dog emu frog goat horse iguana
2 15 23 cat dog emu frog goat horse iguana
3 30 10 cat dog emu frog goat horse iguana
4 45 12 cat dog emu frog goat horse iguana
將DataFrame.assign
與第一行的Series
一起使用:
df = df1.assign(**df2.iloc[0])
print (df)
A B C D E F G H I
0 10 17 cat dog emu frog goat horse iguana
1 20 33 cat dog emu frog goat horse iguana
2 15 23 cat dog emu frog goat horse iguana
3 30 10 cat dog emu frog goat horse iguana
4 45 12 cat dog emu frog goat horse iguana
使用交叉merge
?
df1.merge(df2, how='cross')
輸出:
A B C D E F G H I
0 10 17 cat dog emu frog goat horse iguana
1 20 33 cat dog emu frog goat horse iguana
2 15 23 cat dog emu frog goat horse iguana
3 30 10 cat dog emu frog goat horse iguana
4 45 12 cat dog emu frog goat horse iguana
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.