【发布时间】:2017-05-03 06:03:05
【问题描述】:
我想根据基于同一数据框的两个不同列的行条件添加新列。
我有以下 Dataframe -
df1_data = {'e_id': {0:'101',1:'',2:'103',3:'',4:'105',5:'',6:''},
'r_id': {0:'',1:'502',2:'',3:'504',4:'',5:'506',6:''}}
df=pd.DataFrame(df1_data)
print df
我想添加名为“sym”的新列。
条件-
- 如果“e_id”列值不为空,则 sym 列值为“e_id”列值。
- 如果 'r_id' 列值不为空,则 sym 列值是 'r_id' 列值。
- 如果 'e_id' 和 'r_id' 两个列的值均为 null,则从 pandas 数据框中删除此特定行。
我尝试了以下代码 -
df1_data = {'e_id': {0:'101',1:'',2:'103',3:'',4:'105',5:''},
'r_id': {0:'',1:'502',2:'',3:'504',4:'',5:'506'}}
df=pd.DataFrame(df1_data)
print df
if df['e_id'].any():
df['sym'] = df['e_id']
print df
if df['r_id'].any():
df['sym'] = df['r_id']
print df
但它给了我一个错误的输出。
预期输出 -
e_id r_id sym
0 101 101
1 502 502
2 103 103
3 504 504
4 105 105
5 506 506
【问题讨论】: