我有以下 pandas 数据框:
colA ColB ColC
0 D
1 G
2 A
3 B
4 C
如何将其合并到(*):
colA
0 D
1 G
2 A
3 B
4 C
到目前为止我尝试过:
df = pd.DataFrame.merge([df.ColA, df.ColB, df.ColC], how='right')
df
但是,它不起作用。我怎样才能得到(*)?
最佳答案
您可以使用DataFrame.sum
:
df = df.sum(axis=1)
如果 NaN
值,您可以 fillna
第一:
df = df.fillna('').sum(axis=1)
print (df)
0 D
1 G
2 A
3 B
4 C
dtype: object
另一个使用apply
的解决方案 - join
:
df = df.apply(''.join, axis=1)
#df = df.apply(lambda x: ''.join(x), axis=1)
print (df)
0 D
1 G
2 A
3 B
4 C
dtype: object
解决方案 Series.combine_first
,但需要 NaN
值:
print (df)
colA ColB ColC
0 NaN D NaN
1 NaN NaN G
2 A NaN NaN
3 NaN B NaN
4 C NaN NaN
df = df.colA.combine_first(df.ColB).combine_first(df.ColC)
print (df)
0 D
1 G
2 A
3 B
4 C
Name: colA, dtype: object
关于python - 如何在同一数据框中合并 pandas 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41509577/