如何基于熊猫中现有列的值创建新列

时间:2019-11-28 15:27:29

标签: python pandas dataframe

我有一个171行和11列的数据框。

11列的值均为0或1 我如何创建一个新的列,该列将为0或1,这取决于现有列是否为0或1的多数?

3 个答案:

答案 0 :(得分:0)

您可以做到

useEffect

答案 1 :(得分:0)

使用mean行,并用DataFrame.gt比较是否大于或等于DataFrame.ge等于或大于0.5(如果相同数量的0,则取决于输出和1),最后通过Series.astype将掩码转换为整数:

np.random.seed(20193)
df = pd.DataFrame(np.random.choice([0,1], size=(5, 4)))

df['new'] = df.mean(axis=1).gt(0.5).astype(int)
print (df)
   0  1  2  3  new
0  1  1  0  0    0
1  1  1  1  0    1
2  0  0  1  0    0
3  1  1  0  1    1
4  1  1  1  1    1

np.random.seed(20193)
df = pd.DataFrame(np.random.choice([0,1], size=(5, 4)))


df['new'] = df.mean(axis=1).ge(0.5).astype(int)
print (df)
   0  1  2  3  new
0  1  1  0  0    1
1  1  1  1  0    1
2  0  0  1  0    0
3  1  1  0  1    1
4  1  1  1  1    1

答案 2 :(得分:0)

import numpy as np
import pandas as pd

X = np.asarray([(0, 0, 0),
                (0, 0, 1),
                (0, 1, 1),
                (1, 1, 1)])

df = pd.DataFrame(X)

df['majority'] = (df.mean(axis=1) > 0.5) + 0
df

result