【发布时间】:2018-12-04 20:12:22
【问题描述】:
我是 pandas 的新手,试图在 Pandas Dataframe 中创建一个新列,并基于函数分配一个字符串值,但结果仅向所有 5,000 列输出 1 个值(“住宅”)。知道我的代码有什么问题吗?谢谢
def programType(c):
if c['Primary Property Type - Self Selected'] == 'Multifamily Housing' or 'Residence Hall/Dormitory':
return 'Residential'
elif c['Primary Property Type - Self Selected'] == 'Bank Branch' or 'Hotel' or 'Financial Office' \
or 'Retail Store' or 'Distribution Center' or 'Non-Refrigerated Warehouse' or 'Fitness Center/Health Club/Gym' \
or 'Mixed Use Property' or 'Self-Storage Facility' or 'Wholesale Club/Supercenter' or 'Supermarket/Grocery Store':
return 'Commercial'
elif c['Primary Property Type - Self Selected'] == 'Senior Care Community' or 'K-12 School' or 'College/University' \
or 'Worship Facility' or 'Medical Office' or 'Hospital (General Medical & Surgical)':
return 'Institutional'
elif c['Primary Property Type - Self Selected'] == 'Manufacturing/Industrial Plant':
return 'Industrial'
else:
return 'Other'
新列名为“程序类型”
datav3['Program Type'] = datav3.apply(programType, axis=1)
【问题讨论】:
-
我有点好奇——出于某种原因你需要循环(应用)吗?
-
不,如果有更好的语法我很乐意使用它。我也刚刚看了你的回答,现在明白了。谢谢。