代码之家  ›  专栏  ›  技术社区  ›  Sai Kumar

如何在熊猫中组合两列

  •  0
  • Sai Kumar  · 技术社区  · 6 年前

    是否可以将不是None的test1列值组合到test列。

    我试着连接,但没用。

    split['new'] = split['test'] + split['test1']
    

    这就是我得到的。将SSD和HDD等值替换为NaN。

    split 数据帧:

           test      test1       new
    
    0      SSD       None        NaN
    1     Flash     Storage  FlashStorage
    2      SSD       None        NaN
    3      SSD       None        NaN
    4      SSD       None        NaN
           ...      ......
    1298   SSD       None        NaN
    1299   SSD       None        NaN
    1300  Flash     Storage   FlashStorage
    1301   HDD       None        NaN
    1302   HDD       None        NaN
    

    我试过了,但解决不了。

    4 回复  |  直到 6 年前
        1
  •  2
  •   sundance    6 年前

    更换 None 先使用空字符串 fillna :

    split["new"] = split["test"].fillna("") + split["test1"].fillna("")
    

    或者如果他们真的是绳子 "None" :

    split["new"] = split["test"].str.replace("None", "") + split["test1"].str.replace("None", "")
    
        2
  •  1
  •   BENY    6 年前

    尝试 fillna 在把它们加起来之前

    split['newcol'] = split.replace('None',np.nan).fillna('')[['test','test1']].sum(1)
    
        3
  •  1
  •   Pedro Lobito    6 年前

    迟回答,但您也可以使用:

    import numpy as np
    split['new'] = "{}{}".format(split['test'], split['test1'].replace(np.nan, '', regex=True))
    
        4
  •  0
  •   Will    6 年前

    您需要先使用文本访问器df[“column”].str,然后才能访问字符串函数。

    类似于:

    split['new'] = split['test'].str.cat(split['test1'].str)