Python 折叠行以省去NaN条目 让我们考虑下面的数据文件 名称 A. B C D 汤姆 10 楠 楠 楠 汤姆 楠 15 楠 楠 汤姆 楠 楠 20 楠 汤姆 楠 楠 楠 25 汤姆 30 楠 楠 楠 汤姆 楠 楠 楠 40 厕所 1 楠 楠 楠 厕所 楠 2 楠 楠 厕所 楠 楠 3 楠 厕所 楠 楠 楠 4 厕所 5 楠 楠 楠 厕所 楠 6 楠 楠 厕所 楠 楠 7 楠 厕所 楠 楠 楠 8

Python 折叠行以省去NaN条目 让我们考虑下面的数据文件 名称 A. B C D 汤姆 10 楠 楠 楠 汤姆 楠 15 楠 楠 汤姆 楠 楠 20 楠 汤姆 楠 楠 楠 25 汤姆 30 楠 楠 楠 汤姆 楠 楠 楠 40 厕所 1 楠 楠 楠 厕所 楠 2 楠 楠 厕所 楠 楠 3 楠 厕所 楠 楠 楠 4 厕所 5 楠 楠 楠 厕所 楠 6 楠 楠 厕所 楠 楠 7 楠 厕所 楠 楠 楠 8,python,pandas,dataframe,numpy,collapse,Python,Pandas,Dataframe,Numpy,Collapse,您可以.groupby+.transform(将值向上“移动”)。然后删除包含所有NaN值的行: 打印( df.set_索引(“名称”) .groupby(级别=0) .transform(lambda x:sorted(x,key=lambda k:pd.isna(k))) .dropna(轴=0,how=“全部”) .reset_index() ) 印刷品: Name A B C D 0汤姆10.0 15.0 20.0 25.0 1汤姆30.0楠楠40.0 2约翰1.0 2.0 3.0 4

您可以
.groupby
+
.transform
(将值向上“移动”)。然后删除包含所有
NaN
值的行:

打印(
df.set_索引(“名称”)
.groupby(级别=0)
.transform(lambda x:sorted(x,key=lambda k:pd.isna(k)))
.dropna(轴=0,how=“全部”)
.reset_index()
)
印刷品:

Name A B C D
0汤姆10.0 15.0 20.0 25.0
1汤姆30.0楠楠40.0
2约翰1.0 2.0 3.0 4.0
3约翰5.06.07.08.0

效果很好!谢谢。