【发布时间】:2019-01-01 12:00:39
【问题描述】:
我正在尝试根据“B”列中的条件使用“A”列中的值填充“C”列。示例:如果“B”列等于“nan”,则“C”列下的行等于“A”列中的行。如果“B”列不等于“nan”,则将“C”列保持原样(即“nan”)。接下来,要删除“A”列中的值(仅从 A 列复制到 C 列的值)。
原始数据集:
index A B C
0 6 nan nan
1 6 nan nan
2 9 3 nan
3 9 3 nan
4 2 8 nan
5 2 8 nan
6 3 4 nan
7 3 nan nan
8 4 nan nan
输出:
index A B C
0 nan nan 6
1 nan nan 6
2 9 3 nan
3 9 3 nan
4 2 8 nan
5 2 8 nan
6 3 4 nan
7 nan nan 3
8 nan nan 4
以下是我迄今为止尝试过的,但它不起作用。
def impute_unit(cols):
Legal_Block = cols[0]
Legal_Lot = cols[1]
Legal_Unit = cols[2]
if pd.isnull(Legal_Lot):
return 3
else:
return Legal_Unit
bk_Final_tax['Legal_Unit'] = bk_Final_tax[['Legal_Block', 'Legal_Lot',
'Legal_Unit']].apply(impute_unit, axis = 1)
【问题讨论】:
-
从
A中删除值是什么意思?将其设置为nan? -
@HarvIpan 很抱歉造成混乱。我想用'nan'替换当前值。但只有粘贴在“C”列中的值。我已经更新了上面显示的输出。
标签: python-3.x pandas if-statement conditional-statements copy-paste