簡體   English   中英

將 Pandas Dataframe 與另一個 Pandas Dataframe 的單行組合並填充

[英]Combine and fill a Pandas Dataframe with the single row of another

如果我有兩個數據框:

df1:

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:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM