我有一个数据,看起来像这样:
import pandas as pd
import numpy as np
mydict = {
'col1' : ['a', 'b', 'c'],
'col2' : ['d', np.NaN, 'e'],
'col3' : ['f', 'g', 'h']
}
mydf = pd.DataFrame(mydict)
我想连接这些字符串列。我试了一下,但不起作用:
mydf['concat'] = mydf[['col1', 'col2', 'col3'].apply('-'.join, axis=1)
错误是TypeError: sequence item 0: expected str instance, float found
。
我怎么才能让它工作?它应该跳过缺失值,只连接非缺失值。结果应该如下所示:
concat_dict = {
'col1' : ['a', 'b', 'c'],
'col2' : ['d', np.NaN, 'e'],
'col3' : ['f', 'g', 'h'],
'concat' : ['a-d-f', 'b-g', 'c-e-h']
}
concat_df = pd.DataFrame(concat_dict)
2条答案
按热度按时间ubof19bj1#
在
lambda
函数中进行过滤,然后进行连接。o0lyfsai2#
Series.str.cat(sep='-')
: