是否可以将非None的test1列值组合到测试列。
我尝试进行串联,但无法正常工作。
# make criteria false values NaN
criteria[~criteria] == None
# forward fill the NaNsafter the True values limiting to 2
criteria = criteria.fillna(method="ffill", limit=1)
# whatever's left, make False
criteria = criteria.fillna(False)
# and you mask is complete
df_changed = df_names[criteria]
这就是我得到的。 SSD和HDD等值已替换为NaN。
split['new'] = split['test'] + split['test1']
数据框:
split
我尝试过,但无法解决。
答案 0 :(得分:2)
首先使用None
用空字符串替换fillna
:
split["new"] = split["test"].fillna("") + split["test1"].fillna("")
或者如果它们实际上是字符串"None"
:
split["new"] = split["test"].str.replace("None", "") + split["test1"].str.replace("None", "")
答案 1 :(得分:1)
在添加它们之前尝试fillna
split['newcol'] = split.replace('None',np.nan).fillna('')[['test','test1']].sum(1)
答案 2 :(得分:1)
最新答案,但您也可以使用:
import numpy as np
split['new'] = "{}{}".format(split['test'], split['test1'].replace(np.nan, '', regex=True))
答案 3 :(得分:0)
首先需要使用文本访问器df [“ column”]。str,然后才能使用字符串函数。
类似的东西:
split['new'] = split['test'].str.cat(split['test1'].str)