我有一些空数据框,包含一些列
df_skeleton = pd.DataFrame(columns=columns)
我有另一个数据帧df是上面数据帧的子集,但在这个数据帧中,我有一行数值。
我想将第二个数据帧的相应值放入
df_skeleton
和所有其他列值等于零
例如:
df_skeleton有10列,名字来自col1,col2 ..... col10,
col1 col2 col3 col4 col5 col5 co6 col7 col8 col9 col10
0
但它不包含任何行或值。它只是骨架。
我的df有3列
col1 col3 col7
0 23 45 10
现在我想要的是
df_skeleton
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
0 23 0 45 0 0 0 10 0 0 0
答案 0 :(得分:4)
使用reindex
参数fill_value
:
columns = ['col1','col2','col3','col4','col5','col5','co6','col7','col8','col9','col10']
df_skeleton = pd.DataFrame(columns=columns)
df = df.reindex(columns=df_skeleton.columns, fill_value=0)
print (df)
col1 col2 col3 col4 col5 col5 co6 col7 col8 col9 col10
0 23 0 45 0 0 0 0 10 0 0 0
答案 1 :(得分:4)
df_skeleton.combine_first(df).fillna(0, downcast='infer')
co6 col1 col10 col2 col3 col4 col5 col5 col7 col8 col9
0 0 23 0 0 45 0 0 0 10 0 0