我有一個這樣的數據框: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
提交
取消