我有三列,如果它们的值大于0,则它们是相同的。我想知道如何获取每一列的非零值并将其合并为一列
这是示例列:
我期望将3列合并为一列并获得非零值
输出:
如果该值非零,则每列上的所有值均相同。任何意见是极大的赞赏。谢谢!
答案 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