样本DF:
A B C D E
UK text 0 0 1
US text 0 0 0
UK text 1 0 0
US text 0 0 0
CA text 0 0 0
已转换的DF:
A B C D E
UK text 0 0 1
US text 0 0 0
UK text 1 0 0
US text 0 0 0
CA text 0 0 0
"" "NA" 0 1 0
基本上,我想在二进制列的相同值为0时添加一个虚拟行。
这是我的尝试,但运行它时值没有改变:
df[['C', 'D', 'E']].loc[df.index.max, ['C', 'D', 'E']].sum(axis=0) == 0)] = 1
任何帮助将不胜感激。
答案 0 :(得分:1)
如果给定列中的所有值均为1
,则可以用0
append
换行:
x = df.loc[:,'C':].sum(axis=0).eq(0).astype(int)
new_row = x.reindex(df.columns).fillna({'A':'', 'B':'NA'})
df.append(new_row, ignore_index=True)
A B C D E
0 UK text 0.0 0.0 1.0
1 US text 0.0 0.0 0.0
2 UK text 1.0 0.0 0.0
3 US text 0.0 0.0 0.0
4 CA text 0.0 0.0 0.0
5 NA 0.0 1.0 0.0