我已经从几个CSV文件创建了一个熊猫数据框。
现在有一些列代表相同的内容。 我想将这些列分组为该数据框中的公共列。
Now:
0 X Y
1 6
2 7
3 1
4 5
我想要:
0 X
1 6
2 7
3 1
4 5
谢谢。
答案 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)
您可以强制dtype
为str
/ 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