python pandas加列并按条件赋值
如下代码,我希望在”商户“后面新增一列,字段名为”区域“,并根据”商户“赋值,规则如下:如果”商户“包含关键字”高州“,则区域=”高州“
如果”商户“包含关键字”茂南“,则区域=”茂南“
如果”商户“包含关键字”信宜“,则区域=”信宜“
如果”商户“包含关键字”化州“,则区域=”化州“
加列并赋值的代码要怎么写?
我查了一下应该是用apply,但未搞懂,请指教,谢谢
import numpy as np
import pandas as pd
symbol = ['BABA', 'JD', 'APPLE', 'MS', 'GS', 'WMT']
data = {'行业': ['电商', '电商', '科技', '金融', '金融', '零售'],
'价格': ,
'交易量': ,
'雇员': ,
'商户': ['高州市金山建文电讯手机经营部W', '茂名市茂南区大众电脑维修部', '茂名市通汇电信器材有限公司(茂名通汇直营)W',
'信宜市镇隆镇亚芳手机店W', '中移铁通有限公司化州运营中心W', '信宜市盛汇通讯器材商行W']}
df = pd.DataFrame(data, index=symbol)
df.name = '美股'
df.index.name = '代号'
print(df)
regions = ['高州', '茂南', '信宜', '化州']
df['区域'] = df['商户'].apply(lambda x: ''.join())
{:301_988:} 同意楼上
先写个函数,判断商户属于哪个区域;
apply调用这个函数 nightlight 发表于 2020-12-5 13:36
regions = ['高州', '茂南', '信宜', '化州']
df['区域'] = df['商户'].apply(lambda x: ''.join(
有一个问题,因为商户有时可能是空的,当商户是是空时会报错,没有属实'find'。
所以要在加个判断,if商户为空是=”未知“,否则再判断。
AttributeError: 'float' object has no attribute 'find' nightlight 发表于 2020-12-5 13:36
regions = ['高州', '茂南', '信宜', '化州']
df['区域'] = df['商户'].apply(lambda x: ''.join(
你好,还是没搞懂匿名函数的表达式,因为商户有时可能是空的,当商户是是空时会报错,没有属实'find'。所以要在加个判断,if商户为空是=”未知“,否则再判断。怎么写?请指教,谢谢 rsnodame 发表于 2020-12-5 14:27
同意楼上
先写个函数,判断商户属于哪个区域;
apply调用这个函数
你好,还是没搞懂匿名函数的表达式,因为商户有时可能是空的,当商户是是空时会报错,没有属实'find'。所以要在加个判断,if商户为空是=”未知“,否则再判断。怎么写?请指教,谢谢 cqwcns 发表于 2020-12-5 15:23
你好,还是没搞懂匿名函数的表达式,因为商户有时可能是空的,当商户是是空时会报错,没有属实'find'。所 ...
{:301_1008:} 诶这个需求比较基础了…………
可以用if...else...的方式单独处理值为空的情况;
也可以用try...except...的办法捕获错误
页:
[1]