【发布时间】:2019-09-30 22:05:41
【问题描述】:
我有一种情况,我想在 Pandas DataFrame 中创建一个新列,并根据涉及其他 2 个列的条件填充它。在这个例子中:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([['value1','value2'],['value',np.NaN],[np.NaN,np.NaN]]), columns=['col1','col2'])
我想创建一个新列,'new col',它包含 1)'col2' 中的值,如果它不是 NaN,2)'col1' 中的值,如果它不是 NaN,否则3) NaN
我正在使用 .apply() 尝试此功能,但它没有返回所需的结果
def singleval(row):
if row['col2'] != np.NaN:
val = row['col2']
elif row['col1'] != np.NaN:
val = row['col1']
else:
val = np.NaN
return val
df['new col'] = df.apply(singleval,axis=1)
我希望 'new col' 中的值是 ['value2', 'value', 'nan']
【问题讨论】:
标签: python pandas numpy dataframe