合并熊猫数据框中的列

时间:2019-03-01 21:20:40

标签: python pandas dataframe

我有一个三列的数据框

Col1    Col2    Col3  Col4  Col 5
---------------------------------
Apple   None    192    abc   None
Banana  Banana  89     None  bcd
None    Cake    892    aaa   aaa

我想合并两列,即Col1和Col2以及col1和col5如果一个列中的任何一个都不具有值,则使用该值,如果两者都具有值,则使用该值。 是否可以合并这样的列。

Col1    Col3     Col4
----------------------
Apple   192      abc
Banana  89       bcd
Cake    892      aaa

2 个答案:

答案 0 :(得分:2)

使用(如果None是一个字符串,请首先用np.nandf=df.replace('None',np.nan)替换):

df_new=df.ffill().bfill()[['Col1','Col3']]
print(df_new)

     Col1  Col3
0   Apple   192
1  Banana    89
2  Banana   892

基于更新:

df.bfill(axis=1)[['Col1','Col3','Col4']]

     Col1 Col3 Col4
0   Apple  192  abc
1  Banana   89  bcd
2    Cake  892  aaa

答案 1 :(得分:2)

创建映射dict,用groupbyfirst

d={'Col1':'Col1','Col2':'Col1','Col3':'Col3','Col4':'Col4','Col5':'Col4'}
Yourdf=df.mask(df=='None').groupby(d,axis=1).first()
Out[88]: 
     Col1  Col3 Col4
0   Apple   192  abc
1  Banana    89  bcd
2    Cake   892  aaa