在 pandas 中将两列文本与 NaN 合并
Combine two columns of text with NaN in pandas
我想按如下方式合并两列
import numpy as np
import pandas as pd
data = pd.DataFrame({ 'a' : [np.nan, 'abc'], 'b' : ['abc', 'abc']})
data['c']=data['a']+' '+data['b']
data
a b c
0 NaN abc NaN
1 abc abc abc abc
问题出在NaN,我想得到
Nan + abc = abc
我可以这样做
data = pd.DataFrame({ 'a' : [np.nan, 'abc'], 'b' : ['abc', 'abc']})
data = data.replace( np.nan, '',regex=True)
data['c']=data['a']+' '+data['b']
data
a b c
0 abc abc
1 abc abc abc abc
但这并不总是很方便。有没有办法像这样组合?
NaN + abc = abc
>>> data['c']=data['a'].fillna('') + ' ' + data['b'].fillna('')
>>> data
a b c
0 NaN abc abc
1 abc abc abc abc
但是,请注意 data['c'][0] == ' abc'
。如果需要,您必须使用 .str.strip()
去除空格。
我想按如下方式合并两列
import numpy as np
import pandas as pd
data = pd.DataFrame({ 'a' : [np.nan, 'abc'], 'b' : ['abc', 'abc']})
data['c']=data['a']+' '+data['b']
data
a b c
0 NaN abc NaN
1 abc abc abc abc
问题出在NaN,我想得到
Nan + abc = abc
我可以这样做
data = pd.DataFrame({ 'a' : [np.nan, 'abc'], 'b' : ['abc', 'abc']})
data = data.replace( np.nan, '',regex=True)
data['c']=data['a']+' '+data['b']
data
a b c
0 abc abc
1 abc abc abc abc
但这并不总是很方便。有没有办法像这样组合?
NaN + abc = abc
>>> data['c']=data['a'].fillna('') + ' ' + data['b'].fillna('')
>>> data
a b c
0 NaN abc abc
1 abc abc abc abc
但是,请注意 data['c'][0] == ' abc'
。如果需要,您必须使用 .str.strip()
去除空格。