Python 2.7 我如何在Python中拖拉一列(年),并保留相应的列值?
我有一个五列的文本文件。第一栏有年份(2011年至2040年),第二栏有Tmax,第三栏有Tmin,第四栏有Precip,第五栏有30年的太阳能。我想编写一个python代码,将第一列(年份)洗牌10次,剩余的列中有相应的原始值,也就是说:我只想洗牌年份列10次,以便第1年有相应的值。将文本作为行列表读取,每行都是列列表或列元组。Python 2.7 我如何在Python中拖拉一列(年),并保留相应的列值?,python-2.7,Python 2.7,我有一个五列的文本文件。第一栏有年份(2011年至2040年),第二栏有Tmax,第三栏有Tmin,第四栏有Precip,第五栏有30年的太阳能。我想编写一个python代码,将第一列(年份)洗牌10次,剩余的列中有相应的原始值,也就是说:我只想洗牌年份列10次,以便第1年有相应的值。将文本作为行列表读取,每行都是列列表或列元组。csv模块可能对此有用 然后把这些行洗牌。random模块有一个名为shuffle的函数 编辑: 假设输入格式为CSV(逗号分隔值): 你熟悉NumPy吗?一旦将数据放
csv
模块可能对此有用
然后把这些行洗牌。random
模块有一个名为shuffle
的函数
编辑:
假设输入格式为CSV(逗号分隔值):
你熟悉NumPy吗?一旦将数据放入numpy
ndarray
,在保持列顺序的同时洗牌行就轻而易举了,而不需要创建许多临时表
您可以使用类似于
np.genfromtxt
的函数来读取数据文件,并使用不同的命名字段创建ndarray
。然后,您可以使用np.random.shuffle
函数来重新组织行。请您为我提供这一行的示例代码。我是编程的初学者。谢谢你的帮助和时间。我可以收到你的电子邮件,这样我就可以给你发送样本文件了吗?我收到了这样的错误消息:IOError:[Errno 13]权限被拒绝:“e:\\\\\Programming\\\\\Practice”\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\如果我能给你我正在处理的文件,你可能会发现问题。你的消息告诉你无法阅读该文件。检查它的属性。@user1628913:如果文件不是很大,您可以将其发送给我。:-)你可以在我的个人资料页面上找到我的电子邮件地址。(顺便说一句,如果你对计算PET或类似的东西感兴趣,NumPy有一些专注于气候分析的统计库…)
import csv
import random
input_path = r"path\to\input"
output_path = r"path\to\output"
with open(input_path, "rb") as file:
rows = list(csv.reader(file, delimiter=","))
random.shuffle(rows)
with open(output_path, "wb") as file:
csv.writer(file, delimiter=",").writerows(rows)