我有一个这样的数据框:office school hospital garage lab occupationblah blahblah sometext 基本上我只想通过循环遍历每一行并根据完成的列将自由文本打印到该列中来结束占用列。每行仅填充一列(办公室、学校、医院、车库和实验室)。上面的例子最终应该是这样的:office school hospital garage lab occupationblah blah blahblah blahblah sometext sometext我知道 np.where() 方法,但我不认为这可以查看这么多列(这就是我在标题中放置超过 2 列的原因)。
2 回答

狐的传说
TA贡献1804条经验 获得超3个赞
您可以根据要优先考虑的列使用 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)
假设您使用的是熊猫数据框。

杨魅力
TA贡献1811条经验 获得超6个赞
如果一行中只有一个条目:
df[df.columns[:-1]].astype(str).sum(axis=1)
这将获取除最后一列之外的所有列,然后将其转换为字符串类型,然后将每列的所有字符串连接在一起。
添加回答
举报
0/150
提交
取消