我有一个这样的数据框:
office school hospital garage lab occupation
blah
blahblah
sometext
基本上,我想通过循环遍历每一行并根据完成的哪一列将自由文本打印到该列中而最终完成占用列。每行仅填充一列(办公室,学校,医院,车库和实验室)。上面的示例最后应该是这样的:
office school hospital garage lab occupation
blah blah
blahblah blahblah
sometext sometext
我知道np.where()方法,但是我认为这不能查看这么多的列(这就是为什么我在标题中放置多于2列的原因)。
谢谢!
答案 0 :(得分:1)
如果连续只有一个条目:
df[df.columns[:-1]].astype(str).sum(axis=1)
这将获得除最后一个列以外的所有列,然后将其转换为字符串类型,然后将每一列的所有字符串连接在一起。
答案 1 :(得分:1)
您可以根据想要首先确定优先级的列来使用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)
假设您使用的是熊猫数据框。