比较数据帧的所有数组的数组

时间:2017-07-14 17:58:43

标签: python pandas dataframe

我有以下csv文件:

angular.module('App', [
    'ui.router',
    'ui.bootstrap',
    'ui.bootstrap.pagination',
    'ngSanitize',
    'timer',
    'toastr',
    'ngCookies',
]).config(function($stateProvider, $httpProvider, $urlRouterProvider) {
    'use strict'

    $urlRouterProvider.otherwise(function($injector) {
        var $state = $injector.get('$state');
        $state.go('app.home');
    });

    $stateProvider
        .state('app', {
            abstract: true,
            url: '',
            templateUrl: 'web/global/main.html',
            controller: 'MainCtrl'
        })
        .state('app.home', {
            url: '/',
            templateUrl: 'view/home.html',
            controller: 'MainCtrl'
        })
        .state('app.dit', {
            url: '/dit',
            templateUrl: 'view/partials/logs.html',
            controller: 'LogsCtrl',
            resolve: {
                changeStateData: function(LogsFactory) {
                    var env = 'dit';
                    return LogsFactory.resolveData(env)
                        .then(function(response) {
                            return response.data
                        });
                }
            }
        })
        .state('app.access', {
            url: '/access',
            templateUrl: 'view/partials/access.html',
            controller: 'AccessCtrl'
        });
});

我想创建一个比较列对的数据帧。 我想计算每对列共享值1的次数。因此,对于问题开头显示的数据,我想生成以下数据帧:

C1,C2,C3,C4,C5,C6,C7
0,1,1,1,1,1,1
1,1,1,1,1,1,1
0,1,1,1,0,0,1
0,1,0,1,0,0,1
0,1,1,1,1,1,1
1,1,1,1,1,1,1

[C1,C1] 将包含C1等于1的次数:

  

awk -F',''$ 1 == 1'f.csv | wc -l <​​/ p>

[C1,C2] 将包含C1等于C2且等于1的次数。

  

awk -F',''$ 1 == 1&amp;&amp; $ 1 == $ 2'f.csv | wc -l <​​/ p>

有没有更简单的方法来计算这个?也许使用 C1 C2 C3 C4 C5 C6 C7 C1 C2 C3 C4 C5 C6 C7

1 个答案:

答案 0 :(得分:4)

如果数据框仅包含1和0,则可以使用矩阵乘法dot

df = pd.read_csv("/path/to/csvfile")

df.T.dot(df)

enter image description here