我有一个包含数据的输入 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()
最佳答案
另一个使用 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')
关于python - 使用 Python 随机播放 csv 文件的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42438591/