[英]Inserting a row from dataframe to another dataframe where columns overlap
df1 = pd.DataFrame(columns = ['name','address','age','hobby'], index = ['num1','num2','num3'])
df2 = pd.DataFrame(columns = ['name','age'])
df2['name'] = ['David']
df2['age'] = [20]
# output should yield the same result as below
df1.iloc[0,:] = ['David', np.nan, 20, np.nan]
我想將 df2 的第一行插入 df1 的第一行,以便不重疊的列具有 NaN 值。 我可以在不使用 for 循環或單獨分配值的情況下執行此操作嗎? 我希望將它們全部分配給需要最少的計算時間。 謝謝你。
IIUC,你可以嘗試這樣的事情:
df2.rename({0:'num1'}).combine_first(df1)
Output:
address age hobby name
num1 NaN 20.0 NaN David
num2 NaN NaN NaN NaN
num3 NaN NaN NaN NaN
最后添加重新索引。
df2.rename({0:'num1'}).combine_first(df1).reindex(df1.columns, axis=1)
Output:
name address age hobby
num1 David NaN 20.0 NaN
num2 NaN NaN NaN NaN
num3 NaN NaN NaN NaN
您還可以使用iloc
定義它:
df1.iloc[0,[0,2]] = df2.values
Output:
name address age hobby
num1 David NaN 20 NaN
num2 NaN NaN NaN NaN
num3 NaN NaN NaN NaN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.