繁体   English   中英

用另一列替换一列但不缺失值

[英]replacing one column with another column but not missing value

我有一个数据框

name g1 g2
a    1  1
a    0  na
a    1  3
b    1  na
b    2  na
b    3  4
c    4  na

我想将 g2 值移动到 g1 而不移动 na 返回的列应该是

name g1 g2
a    1  1
a    0  na
a    3  3
b    1  na
b    2  na
b    4  4
c    4  na

我使用了df.replace(g1, g2),但这也会移动 NA。 有没有人不移动NA

这是一种方法:

data = [['a', '1', '1'], ['a', '0', np.nan], ['a', '1', '3'], ['b', '1', np.nan],
        ['b', '2', np.nan], ['b', '3', '4'], ['c', '4', np.nan]]

df = pd.DataFrame(data, columns=['name', 'g1', 'g2'])
df['g1'] = df['g2'].fillna(df['g1'])
print(df)

输出:

  name g1   g2
0    a  1    1
1    a  0  NaN
2    a  3    3
3    b  1  NaN
4    b  2  NaN
5    b  4    4
6    c  4  NaN

您可以使用notna检查:

df.loc[df['g2'].notna(), 'g1'] = df['g2']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM