我有三个Dataframe (dataframe1, dataframe2, dataframe3)
import pandas as pd
data1= [[0, 0, 1, 1], [1,0,1,0], [0,1,1,0], [1,1,0,1]]
dataframe1 = pd.DataFrame(data1, columns=['0', '1', '2', '3'])
dataframe1
data2 = [[1,0,1,0], [0,0,1,0], [0,1,0,1], [0,0,0,1]]
dataframe2 = pd.DataFrame(data2, columns=['0', '1', '2', '3'])
dataframe2
data3 = [[1,0,1,0], [0,0,1,0], [0,0,0,0], [0,1,0,1]]
dataframe3 = pd.DataFrame(data3, columns=['0', '1', '2', '3'])
dataframe3
我需要一个基于以上三个数据帧的每个位置的majority元素的新数据帧
预期结果
1 0 0 0
0 0 0 0 0
0 0 0 0
0 1 0 1
因为每个DataFrame中相同的索引值可以使用concat
,然后每个索引通过Series.mode
获得多数元素,如果可能的话,需要多个多数元素并且需要一个Series.iat
选择第一个值:
df = (pd.concat([dataframe1, dataframe2, dataframe3])
.groupby(level=0)
.agg(lambda x: x.mode().iat[0]))
print (df)
0 1 2 3
0 1 0 1 0
1 0 0 1 0
2 0 1 0 0
3 0 1 0 1