Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/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_Intersection_Dataframe - Fatal编程技术网

Python 计算二进制数并在数据帧中找到交点

Python 计算二进制数并在数据帧中找到交点,python,pandas,intersection,dataframe,Python,Pandas,Intersection,Dataframe,基于以下内容,我有两个问题DataFrame (1.)每个二进制值表示数据项(p1、p2、p3、p4)的出现或缺失。我想计算数据帧中的二进制值(仅1s) df = pd.DataFrame([[1,1,1,0,1],[2,1,1,0,1],[3,1,1,1,1],[4,0,1,0,1]]) df.columns = ['session','p1','p2','p3','p4'] 输出 session p1 p2 p3 p4 0 1 1 1 0 1 1

基于以下内容,我有两个问题
DataFrame

(1.)每个二进制值表示数据项(p1、p2、p3、p4)的出现或缺失。我想计算
数据帧中的二进制值(仅1s)

df = pd.DataFrame([[1,1,1,0,1],[2,1,1,0,1],[3,1,1,1,1],[4,0,1,0,1]])
df.columns = ['session','p1','p2','p3','p4']
输出

   session  p1  p2  p3  p4
0        1   1   1   0   1
1        2   1   1   0   1
2        3   1   1   1   1
3        4   0   1   0   1
以下是我尝试过的

print ([df[col].value_counts() for col in df.columns])
但我的预期结果如下。帮我把这个弄出来

        count
0        3
1        3
2        4
3        2
(2.)我想知道会话的交叉点。它用于获取会话1和2、1和3、1和4、2和3、2和4、3和4、3和4之间的公共数据项(p1、p2、p3、p4)。 我不知道预期的产出,但我觉得应该是这样的

  1,2,3,4
1,3,3,3,2
2,3,3,3,2
3,3,3,4,2
4,2,2,2,2
(1) 我假设您希望将
会话
设置为索引

In [86]: df = df.set_index('session')

In [87]: df.sum(axis=1)
Out[87]: 
session
1          3
2          3
3          4
4          2
dtype: int64
(2) 使用


很好的等待,非常感谢。
In [90]: df.dot(df.T)
Out[90]: 
session  1  2  3  4
session            
1        3  3  3  2
2        3  3  3  2
3        3  3  4  2
4        2  2  2  2