Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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_Python 2.7_Pandas_Csv_Subset - Fatal编程技术网

Python 将文件中的子集列分隔为子文件

Python 将文件中的子集列分隔为子文件,python,python-2.7,pandas,csv,subset,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), r

我有一个小任务,我正在努力。所以基本上我们必须从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)

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

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\U分类
添加到
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)

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

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\U分类
添加到
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)
IIUC:

IIUC:


2**n
事物的总组合。我将使用这样一个事实,即
n
事物的每一个组合都可以表示为
1
0
在从
0
2**n-1
的每个数字的二进制表示中

def all_subsets(n):
    for i in range(1, 2 ** n):
        yield np.array(list(f'{i:0{n}b}'), int).astype(bool)

df = pd.DataFrame([[1, 2, 3, 4]], columns=list('ABCD'))

print(*(df.loc[:, m].to_csv() for m in all_subsets(df.shape[1])), sep='\n')


2**n
事物的总组合。我将使用这样一个事实,即
n
事物的每一个组合都可以表示为
1
0
在从
0
2**n-1
的每个数字的二进制表示中

def all_subsets(n):
    for i in range(1, 2 ** n):
        yield np.array(list(f'{i:0{n}b}'), int).astype(bool)

df = pd.DataFrame([[1, 2, 3, 4]], columns=list('ABCD'))

print(*(df.loc[:, m].to_csv() for m in all_subsets(df.shape[1])), sep='\n')



[1,2,3,4]
是列名吗?@jezrael是的,有四列A、B、C、D(名称供参考)你知道该函数的功能是什么,或者如何调用它吗?
[1,2,3,4]
是列名吗?@jezrael是的,有四列A、B、C、D(名称供参考)你知道该函数的功能吗,或者如何调用它?名称错误:名称“lst”未定义名称错误:名称“lst”未定义属性错误:“\u csv.reader”对象没有属性“columns”获取此属性Error@FaqahatFareed-您是否通过
df=pd.read\u table(file)
创建数据帧?非常感谢,它成功了,但是,在导出到子文件之前,您是否可以使用正则表达式帮助删除文本中的特殊字符?@fakahatfareed-我认为最好是创建新问题,我不觉得自己像正则表达式专家。简单的正则表达式理解,但更复杂的是,这对我来说真的很难。谢谢。谢谢,我删除了它,因为它没有执行单个{A}、{B}、{C}等操作。所以我必须更改为if len(subset)>0:它现在工作得很好!非常感谢!!AttributeError:“\u csv.reader”对象没有获取此信息的属性“columns”Error@FaqahatFareed-您是否通过
df=pd.read\u table(file)
创建数据帧?非常感谢,它成功了,但是,在导出到子文件之前,您是否可以使用正则表达式帮助删除文本中的特殊字符?@fakahatfareed-我认为最好是创建新问题,我不觉得自己像正则表达式专家。简单的正则表达式理解,但更复杂的是,这对我来说真的很难。谢谢。谢谢,我删除了它,因为它没有执行单个{A}、{B}、{C}等操作。所以我必须更改为if len(subset)>0:它现在工作得很好!非常感谢!!