从多个其他列(超过 2 个)填充空白 Pandas 列

我有一个这样的数据框:


office       school      hospital            garage  lab  occupation

blah

                         blahblah

             sometext 

基本上我只想通过循环遍历每一行并根据完成的列将自由文本打印到该列中来结束占用列。每行仅填充一列(办公室、学校、医院、车库和实验室)。上面的例子最终应该是这样的:


office       school      hospital        garage  lab  occupation

blah                                                    blah

                         blahblah                       blahblah    

             sometext                                   sometext

我知道 np.where() 方法,但我不认为这可以查看这么多列(这就是我在标题中放置超过 2 列的原因)。


皈依舞
浏览 157回答 2
2回答

狐的传说

您可以根据要优先考虑的列使用 fillna 功能,例如:你可以优先从你想先填写的列,这里我已经优先 - [办公室学校医院车库实验室]df['occupation'] = df['office']df['occupation'].fillna(df['school'], inplace=True)df['occupation'].fillna(df['hospital'], inplace=True)df['occupation'].fillna(df['garage'], inplace=True)df['occupation'].fillna(df['lab'], inplace=True)假设您使用的是熊猫数据框。

杨魅力

如果一行中只有一个条目:df[df.columns[:-1]].astype(str).sum(axis=1)这将获取除最后一列之外的所有列,然后将其转换为字符串类型,然后将每列的所有字符串连接在一起。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python