【发布时间】:2018-07-25 09:42:18
【问题描述】:
我有一个如下所示的数据框:
boat_type boat_type_2
Not Known Not Known
Not Known kayak
ship Not Known
Not Known Not Known
ship Not Known
我想创建第三列boat_type_final,应该如下所示:
boat_type boat_type_2 boat_type_final
Not Known Not Known cruise
Not Known kayak kayak
ship Not Known ship
Not Known Not Known cruise
ship Not Known ship
所以基本上如果boat_type 和boat_type_2 中都存在“未知”,那么该值应该是“巡航”。但如果前两列中存在“Not Known”以外的字符串,则应使用该字符串填充boat_type_final,“kayak”或“ship”。
最优雅的方法是什么?我见过几个选项,例如where、创建函数和/或逻辑,我想知道真正的 pythonista 会做什么。
到目前为止,这是我的代码:
import pandas as pd
import numpy as np
data = [{'boat_type': 'Not Known', 'boat_type_2': 'Not Known'},
{'boat_type': 'Not Known', 'boat_type_2': 'kayak'},
{'boat_type': 'ship', 'boat_type_2': 'Not Known'},
{'boat_type': 'Not Known', 'boat_type_2': 'Not Known'},
{'boat_type': 'ship', 'boat_type_2': 'Not Known'}]
df = pd.DataFrame(data
df['phone_type_final'] = np.where(df.phone_type.str.contains('Not'))...
【问题讨论】:
标签: python python-3.x pandas numpy dataframe