使用python中的动态列名将单个csv文件中的不同数组保存

时间:2018-05-08 17:20:39

标签: python pandas numpy

我的数据表有250列,列名为' 1' ...' 250'。在对每列进行随机抽样后,我想将所有采样列保存在单个csv文件中,其列名与数据表中的相同。

for i in range(1,250):
   z=np.random.choice(df[i], len(df), replace=False)

如何进行?

1 个答案:

答案 0 :(得分:1)

我认为需要分配回每个列,然后通过to_csv写入csv

for i in range(1,250):
   df[i]=np.random.choice(df[i], len(df), replace=False)

df.to_csv(file, index=False)

sample的另一个解决方案:

df1 = df.sample(len(df.columns), replace=False)
df.to_csv(file, index=False)

<强>示例

df = pd.DataFrame(np.random.randint(30, size=(5,4))).rename(columns=lambda x: x+1)
print (df)
    1   2   3   4
0  12  10   2  14
1   9  14  28   4
2   9  11  14   8
3  22   8   2   9
4  28   3  23   6

df1 = df.sample(len(df.columns), axis=0, replace=False)
print (df1)
    1   2   3   4
3  22   8   2   9
0  12  10   2  14
2   9  11  14   8
4  28   3  23   6

for i in range(1,5):
   df[i]=np.random.choice(df[i], len(df), replace=False)

print (df)
    1   2   3   4
0  28  11  23   8
1  22   3   2  14
2   9  10  28   4
3   9   8  14   9
4  12  14   2   6