Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对熊猫栏目进行多数投票_Python_Pandas - Fatal编程技术网

Python 如何对熊猫栏目进行多数投票

Python 如何对熊猫栏目进行多数投票,python,pandas,Python,Pandas,我有一个数据框,它有10个不同的列,A1,A2,…,A10。这些列包含y或n。如果大多数列(A1,A2,…,A10)为y或n,则我想创建另一个值为y的列。我如何才能做到这一点?使用: 例子 如果有必要处理真正多数和分裂决策之间的区别,您可以使用。例如: df['majority'] = df.mode(axis=1)[0] np.random.seed(0) df = pd.DataFrame(np.random.choice(['y', 'n'], size=(10, 10))) prin

我有一个数据框,它有10个不同的列,
A1
A2
,…,
A10
。这些列包含
y
n
。如果大多数列(
A1
A2
,…,
A10
)为
y
n
,则我想创建另一个值为
y
的列。我如何才能做到这一点?

使用:

例子
如果有必要处理真正多数和分裂决策之间的区别,您可以使用。例如:

df['majority'] = df.mode(axis=1)[0]
np.random.seed(0)
df = pd.DataFrame(np.random.choice(['y', 'n'], size=(10, 10)))
print(df)

   0  1  2  3  4  5  6  7  8  9
0  y  n  n  y  n  n  n  n  n  n
1  n  y  y  n  y  y  y  y  y  n
2  y  n  n  y  y  n  n  n  n  y
3  n  y  n  y  n  n  y  n  n  y
4  y  n  y  n  n  n  n  n  y  n
5  y  n  n  n  n  y  n  y  y  n
6  n  y  n  y  n  y  y  y  y  y
7  n  n  y  y  y  n  n  y  n  y
8  y  n  y  n  n  n  n  n  n  y
9  n  n  y  y  n  y  y  n  n  y

df['majority'] = df.mode(axis=1)[0]
print(df)

   0  1  2  3  4  5  6  7  8  9 majority
0  y  n  n  y  n  n  n  n  n  n        n
1  n  y  y  n  y  y  y  y  y  n        y
2  y  n  n  y  y  n  n  n  n  y        n
3  n  y  n  y  n  n  y  n  n  y        n
4  y  n  y  n  n  n  n  n  y  n        n
5  y  n  n  n  n  y  n  y  y  n        n
6  n  y  n  y  n  y  y  y  y  y        y
7  n  n  y  y  y  n  n  y  n  y        n
8  y  n  y  n  n  n  n  n  n  y        n
9  n  n  y  y  n  y  y  n  n  y        n
mode = df.mode(axis=1)

df['majority'] = np.where(mode.isna().any(1), mode[0], 'split')
print(df)

   0  1  2  3  4  5  6  7  8  9 majority
0  y  n  n  y  n  n  n  n  n  n        n
1  n  y  y  n  y  y  y  y  y  n        y
2  y  n  n  y  y  n  n  n  n  y        n
3  n  y  n  y  n  n  y  n  n  y        n
4  y  n  y  n  n  n  n  n  y  n        n
5  y  n  n  n  n  y  n  y  y  n        n
6  n  y  n  y  n  y  y  y  y  y        y
7  n  n  y  y  y  n  n  y  n  y    split
8  y  n  y  n  n  n  n  n  n  y        n
9  n  n  y  y  n  y  y  n  n  y    split