Python或Unix/Bash。将大数据帧拆分为单独的列,保留前n列

Python或Unix/Bash。将大数据帧拆分为单独的列,保留前n列,python,dataframe,unix,Python,Dataframe,Unix,我有一个大数据框(df)X,有n列(~30000),~2000行,列名如下: A、 B,C,D,F,G,H,V1453,73v,4-5,ss,9-dd,…,n X的元素是整数、浮点和字符串的混合体 使用python或unix/bash,我想将X拆分为n-7dfs。每个结果df将保留X的前7列+X的下一个单列。因此,前3个df将具有以下列: A、 B,C,D,F,G,H,v1 A、 B,C,D,F,G,H,453 A、 B,C,D,F,G,H,73v 等等 我希望每个生成的dfs保留其最后一列的名

我有一个大数据框(df)X,有n列(~30000),~2000行,列名如下:

A、 B,C,D,F,G,H,V1453,73v,4-5,ss,9-dd,…,n

X的元素是整数、浮点和字符串的混合体

使用python或unix/bash,我想将X拆分为n-7dfs。每个结果df将保留X的前7列+X的下一个单列。因此,前3个df将具有以下列:

A、 B,C,D,F,G,H,v1

A、 B,C,D,F,G,H,453

A、 B,C,D,F,G,H,73v

等等

我希望每个生成的dfs保留其最后一列的名称+“.txt”。因此,前三个df将被称为“v1.txt”、“453.txt”和“73v.txt”

这篇文章在某种程度上类似于:


但我无法调整它。

您可以按以下步骤进行:

import pandas as pd
import numpy as np
np.random.seed(42)

df = pd.DataFrame({'A': np.random.randint(0, 100, 10),
                   'B': np.random.randint(0, 100, 10),
                   'C': np.random.randint(0, 100, 10),
                   'D': np.random.randint(0, 100, 10),
                   'F': np.random.randint(0, 100, 10),
                   'G': np.random.randint(0, 100, 10),
                   'H': np.random.randint(0, 100, 10),
                   'v1': np.random.randint(0, 100, 10),
                   '453': np.random.randint(0, 100, 10),
                   '73v': np.random.randint(0, 100, 10)})

for i in range(7, df.shape[1]):
    sub_df = df.iloc[:, np.r_[0:7, i]]
    sub_df.to_csv(f'{df.columns[i]}.txt', sep='\t')