我想结合两个dataframes
。dataframe
假设其中一个Empty_DF
是空的,并且大小很大(320列乘240行),索引和列名只是整数。另一个ROI_DF
较小,并且填充,并且在特定位置匹配索引和列名。
我已尝试使用pandas.merge
此问题中建议的功能;但是,它将只是将列追加到空dataframe
Empty_DF
而不替换值。
Empty_DF = pd.DataFrame({'a':[0,0,0,0,0,0],
'b':[0,0,0,0,0,0], 'b':[0,0,0,0,0,0]}, index=list('abcdef'))
print (Empty_DF)
ROI_DF= pd.DataFrame({'a':range(4),
'b':[5,6,7,8]}, index=list('abce'))
print(ROI_DF)
a b c
a 0 0 0
b 0 0 0
c 0 0 0
d 0 0 0
e 0 0 0
f 0 0 0
Run Code Online (Sandbox Code Playgroud)
在此示例中,这足够了,因为dataframe
很小,pandas.fillna
可以使用带有pandas.drop 的选项。有没有更有效的方法来将此优化为更大dataframes
?
df3 = pd.merge(Empty_DF, ROI_DF, how='left', left_index=True,
right_index=True, suffixes=('_x', ''))
df3['a'].fillna(df3['a_x'], inplace=True)
df3['b'].fillna(df3['b_x'], inplace=True)
df3.drop(['a_x', 'b_x'], …
Run Code Online (Sandbox Code Playgroud)