【发布时间】:2022-10-01 02:01:21
【问题描述】:
我有一个字典和两个列表,其中包含我的数据框的某些列(不是全部):
dict = {\'a_n1\' : \'a_n\',
\'b_n1\', \'b_n\',
\'c_n1\' : \'c_n\',
...} #lenght of 124
list_1 = [a_n1, b_n1, c_n, d_n, ...] #(lenght of 124)
list_2 = [a_n, b_n, c_n, d_n, ...] #(lenght of 124)
数据框示例:
a_n1 a_n b_n1 b_n
0 2150 NaN Nan 12
1 NaN 140 74,1 NaN
2 7160 NaN 100 41.2
3 NaN NaN NaN NaN
4 90 50 17 NaN
... ... ... ...
如果 list_1 的列中的值是 na 而不是 list_2 中的列的值,我希望我的值被 list_2 中的列的值替换。
期望的输出:
a_n1 a_n b_n1 b_n
0 2150 NaN 12 12
1 140 140 74,1 NaN
2 7160 NaN 100 41.2
3 NaN NaN NaN NaN
4 90 50 17 NaN
... ... ... ...
到目前为止,这是我的尝试,如果我的数据框的列在 list_1 中并且值为 na,我设法在 IPython 控制台中返回一个布尔值,但我不知道如何返回 list_2 中列的值
df.columns.isin(list_1) & df.isna()
感谢任何可以启发我如何做到这一点以及如何使我的编码更清晰的人
-
你能显示所有数据吗?df 是什么?