使用 Python 随机播放 csv 文件的所有行

新手上路,请多包涵

我有一个包含数据的输入 csv 文件:

 a   15
b   14
c   20
d   45

我想生成一个不同的 csv 文件,它将包含来自输入文件的完整数据行,但行应该被打乱。

像输出文件可能包含值-

 b 14
a 15
c 20
d 45

我试过这段代码:

 import random
import sys
op=open('random.csv','w+')
ip=open(sys.argv[1],'r')
data=ip.read()
data1=str(random.choices(data))
op.write(data1)
op.close()

原文由 Rosh Verma 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 495
1 个回答

另一张照片使用 pandas 。你可以阅读你的 .csv 文件:

 df = pd.read_csv('yourfile.csv', header=None)

然后使用 df.sample 来随机排列你的行。这将返回数据框的随机样本,其中的行已打乱。使用 frac=1 您将整个集合视为样本:

 In [18]: df
Out[18]:
   0   1
0  a  15
1  b  14
2  c  20
3  d  45

In [19]: ds = df.sample(frac=1)

In [20]: ds
Out[20]:
   0   1
1  b  14
3  d  45
0  a  15
2  c  20

如果您需要再次保存新的随机文件,您可以:

 ds.to_csv('newfile.csv')

原文由 Fabio Lamanna 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏