首页 > 解决方案 > Pandas Python用另一个行值更新列

问题描述

我有数百万行的数据框。作为我的数据框的示例:

Col0, Col1, Col2, Col3
Val0, Val1, Nan, Nan
Val0, Nan, Val3, Nan
Val0, Nan, Nan, Val5

我想要的输出是:

Col0, Col1, Col2, Col3
Val0, Val1, Val3, Val5

我为所需的输出提出了一个迭代请求,但这需要几个小时。

问候

标签: pythonpython-3.xpandasdataframe

解决方案


我不清楚这样做的好处是什么,除非您的 df 只是一个列表,其中列之间没有关系,但这里有一个解决方案:

对于这个df:

 Col0  Col1  Col2  Col3
0     3     5   Nan   Nan
1     3   Nan    12   Nan
2     3   Nan   Nan    17

做这个

pd.concat([testcol[col].sort_values().reset_index(drop=True) for col in testcol], axis=1, ignore_index=True)

这使

   0     1     2     3
0  3     5    12    17
1  3   Nan   Nan   Nan
2  3   Nan   Nan   Nan

推荐阅读