将列合并为一列

时间:2019-01-14 07:12:47

标签: python pandas

我有三列,如果它们的值大于0,则它们是相同的。我想知道如何获取每一列的非零值并将其合并为一列

这是示例列:

enter image description here

我期望将3列合并为一列并获得非零值

输出:

enter image description here

如果该值非零,则每列上的所有值均相同。任何意见是极大的赞赏。谢谢!

5 个答案:

答案 0 :(得分:3)

使用max

df['C'] = df[['C1','C2','C3']].max(1)

答案 1 :(得分:2)

使用:

df['C'] = df.replace(0, np.nan).bfill(axis=1).iloc[:, 0].fillna(0)

答案 2 :(得分:1)

import pandas as pd
import numpy as np

df = pd.DataFrame({'C1':[0,15,25],
                   'C2':[1,0,25],
                   'C3':[1,15,25]})

x = np.trim_zeros(np.unique(df.values))
new_df = pd.DataFrame({'C':x})

答案 3 :(得分:1)

import pandas as pd
import numpy as np

df = pd.DataFrame([[0, 1, 1],[15, 0, 15],[25, 25, 25]])
df.replace(0, np.nan).mean(axis=1)

或使用

df.max(axis=1)

答案 4 :(得分:1)

In [312]: df.replace(0,np.nan).max(1)
Out[312]: 
0     1.0
1    15.0
2    25.0