Python Pandas:如何将两个列分组为一个公共列

时间:2018-11-05 21:12:37

标签: python pandas dataframe

我已经从几个CSV文件创建了一个熊猫数据框。

现在有一些列代表相同的内容。 我想将这些列分组为该数据框中的公共列。

Now:

0  X  Y
1  6  
2     7
3  1
4     5

我想要:

0  X  
1  6  
2  7
3  1
4  5

谢谢。

3 个答案:

答案 0 :(得分:2)

假设它们是空字符串C:/Windows

''与可调用对象结合使用,可将groupby转换为'Y'

'X'

否则,请忽略df.mask(df.eq('')).groupby(lambda x: {'Y': 'X'}.get(x, x), axis=1).first() 0 X 0 1 6 1 2 7 2 3 1 3 4 5

mask

答案 1 :(得分:1)

可以用fillna

进行检查
df.X.mask(df.X.eq('')).fillna(df.Y)
Out[232]: 
0    6.0
1    7.0
2    1.0
3    5.0
Name: X, dtype: float64

答案 2 :(得分:0)

您可以强制dtypestr / object,然后按以下方式进行水平串联/求和:

df = pd.DataFrame({'X': ['6', '', '1', ''], 'Y': ['', 7, '', 5]})

df.astype(str).sum(axis=1)

# returns the following Series which you can assign to a new column of your dataframe
0   6
1   7
2   1
3   5