gpt4 book ai didi

python - 如何将数据列分配给变量

转载 作者:行者123 更新时间:2023-12-04 17:32:47 24 4
gpt4 key购买 nike

我正在编写一个通用程序来读取和绘制 .txt 文件中的大量数据。每个文件都有不同数量的列。我确实知道每个文件都有 8 个我不感兴趣的列,所以我可以通过这种方式计算出相关列的数量。如何读取数据并将每个相关列的数据排序到单独的变量中?

这是我到目前为止所拥有的:

datafile = 'plotspecies.txt'
with open(datafile) as file:
reader = csv.reader(file, delimiter=' ', skipinitialspace=True)
first_row = next(reader)
num_cols = len(first_row)
rows = csv.reader(file, delimiter = ' ', quotechar = '"')
data = [data for data in rows]

num_species = num_cols - 8

我见过有人说 pandas 对这类事情有好处,但我似乎无法导入它。我更喜欢没有它的解决方案。

最佳答案

Pandas 实际上是这里的正确解决方案。问题是,为了稳健地处理您不确定底层结构的事情,您必须注意很多边缘情况,并试图将其硬塞到 csv 中。模块是头痛的秘诀(尽管可以做到)

至于为什么不能导入pandas原因是它没有附带python默认情况下。选择一种语言时要考虑的最重要的事情之一是它可以让你访问的包的生态系统。 Python 恰好是这方面最好的之一,因此忽略不属于标准 Python 的所有内容就是忽略该语言的最佳部分。

如果您在 Windows 环境中,您应该从获取 conda 开始。设置。这将允许您以很少的开销无缝地探索许多可供 python 用户使用的包。这包括 pandas ,这实际上是处理这个问题的正确方法。有关安装 conda 的更多信息,请参阅此链接:http://conda.pydata.org/docs/install/quick.html

一旦你得到 pandas安装它就像这样简单:

import pandas
test = pandas.read_csv(<your_file>)
your_Variable = test[<column_header>]

就这么简单。

如果您真的,真的不想使用核心 python 中没有的东西,那么您可以使用以下内容来执行此操作,但您没有为实际解决方案提供足够的细节:
def col_var(input_file, delimiter):
# get each line into a variable
rows = open(input_file).read().splitlines()

# split each row into entries
split_rows = [row.split(delimiter) for row in rows]

# Re-orient your list
columns = zip(*split_rows)

最不直观的部分是最后一行,所以这里有一个小例子向您展示它是如何工作的:
>>> test = [[1,2], [3,4]]
>>> zip(*test)
[(1, 3), (2, 4)]

关于python - 如何将数据列分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37750728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com