我想在pandas中将2列组合成1列,当我在google上搜索时,我得到的唯一选项是:合并,连接,连接。这些都不能解决我在这里遇到的问题。
目标:
来自base_dataframe:
Name Mark_x Mark_y Mark_z
A 90 nan nan
B nan 85 nan
C nan nan 70
D 30 nan nan致desired_dataframe:
Name Mark
A 90
B 85
C 70
D 30我所拥有的是上面的dataframe,并且只有1个Mark列将永远不为空(先决条件)。被困在谷歌搜索了1个小时,不知道我应该看看什么功能,可以帮助解决这个问题。如果您知道任何可能与此问题相关的函数,请让我知道,以便我可以研究它,谢谢。
发布于 2020-04-03 04:44:53
假设这三列中的每行始终只有一个值,如您的示例所示,您可以使用df.sum(),它在默认情况下跳过任何NaN:
desired_dataframe = pd.DataFrame(base_dataframe['Name'])
desired_dataframe['Mark'] = base_dataframe.iloc[:, 1:4].sum(axis=1)在每行可能有更多值的情况下,使用df.max()可能会更安全,这是以相同的方式工作的。
https://stackoverflow.com/questions/61000380
复制相似问题