将子集列从文件分隔到子文件

时间:2018-03-18 09:35:02

标签: python python-2.7 pandas csv subset

我有一个小任务,我正在努力。所以基本上我们必须从TSV文件中读取列并将列的所有可能子集导出到CSV。在导出之前,我们必须清理代码(删除除。,空格之外的特殊字符。)

我遇到了这个子集代码,但我不确定如何在我的要求中使用它:

import pandas as pd
from itertools import chain, combinations


def all_subsets(ss):

    return chain(*map(lambda x: combinations(ss,x), range(0, len(ss) + 1)))
subsets = all_subsets([1, 2, 3, 4])

for subset in subsets:

   print(subset)

Pictorial Explanation

3 个答案:

答案 0 :(得分:2)

我认为需要按子集,进程选择列并写入文件:

df = pd.read_table(file)

#clean DataFrame by regex

#return list of all comprination of columns names
subsets = all_subsets(df.columns)

for subset in subsets:
    df1 = df[list(subset)]
    #join values of tuples to files names
    df1.to_csv('_'.join(subset) + '.csv', index=False)

编辑:

要将列acm_classification添加到Dataframe,请使用:

df = pd.read_table('xa.tsv')
print (df.head())

def all_subsets(ss):

    return chain(*map(lambda x: combinations(ss,x), range(0, len(ss) + 1)))

cols = [x for x in df.columns if not x == 'acm_classification']
subsets = all_subsets(cols)
#print (subsets)

for subset in subsets:
    #filter subsets
    if len(subset) > 1:
        df1 = df[list(subset) + ['acm_classification']]
#        print (df1)     
        df1.to_csv('_'.join(subset) + '.csv', index=False)

答案 1 :(得分:2)

IIUC:

global.css

答案 2 :(得分:2)

cat $TMPDIR/*.filtered > $TMPDIR/tmp_pagecounts-${_date} echo '\ufeff' > $TMPDIR/pagecounts-${_date} cat $TMPDIR/tmp_pagecounts-${_date} | sort >> $TMPDIR/pagecounts-${_date} 事物的总2 ** n组合。我将使用这样一个事实:n事物的每个组合都可以通过n1在从0到{的每个数字的二进制表示中表示。 {1}}。

0
2 ** n - 1