Python Pandas 里面通过多列条件生成新的一列数据

Python Pandas 里面通过多列条件生成新的一列数据

我想通过Dataframe里面的几个不同的列的条件来新建一个新的列,比如

import numpy as np

import 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

回到顶部