Python Pandas 里面通过多列条件生成新的一列数据
我想通过Dataframe里面的几个不同的列的条件来新建一个新的列,比如
import numpy as npimport pandas as pd
data = {'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Hangzhou', 'Chongqing'],
'year': [2016,2016,2015,2017,2016, 2016],
'population': [2100, 2300, 1000, 700, 500, 500]}
frame = pd.DataFrame(data, columns = ['year', 'city', 'population', 'debt'])
frame["city"].ix[2] = np.nan
def function(a, b):
if 'ing' in a and b == 2016:
return 1
else:
return 0
print(frame, '\n')
frame['test'] = frame.apply(lambda x: function(x.city, x.year), axis = 1)
print(frame)
但是这种方法,如果city有一个值缺失值的话,这段code就会报错,这样的作为条件列有NAN的情况下应该怎么处理呀?
回答:
你可以使用frame.fillna来填充缺失值,例如frame.fillna('unknow_city'),也可以在function中使用isnan首先判断a是不是NAN
以上是 Python Pandas 里面通过多列条件生成新的一列数据 的全部内容, 来源链接: utcz.com/a/163508.html