我有一个这样的数据框
----------------
RecID| A |B
----------------
1 |NaN | x
2 |y | NaN
3 |z | NaN
4 |NaN | a
5 |NaN | b
我想从A和B创建一个新列C,这样,如果A为空,则填充B,如果B为空,则填充A:
----------------------
RecID|A |B |C
----------------------
1 |NaN | x |x
2 |y | NaN |y
3 |z | NaN |z
4 |NaN | a |a
5 |NaN | b |b
最后,如果我有两个以上的列,例如,我有AZ列,并想从AZ列中创建一个新的A1列,是否有一种有效的方法呢?
如果是多列,则可以使用正向填充。本示例假定您要构建所有列“ A”至“ Z”的组合:
df['AZ'] = df.loc[:,'A':'Z'].fillna(method='ffill',axis=1)['Z']
此方法也适用于两列:
df['C'] = df.loc[:,'A':'B'].fillna(method='ffill',axis=1)['B']
#0 x
#1 y
#2 z
#3 a
#4 b
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句