python - 如何将 .csv 的元素拆分为两个单独的列表
问题描述
所以我得到了一个文件,其最小值和最大值如下所示:
12.0,-4.5
34.6,1.8
12.7,2.8
etc...
为了我的程序的目的,我需要将每一行拆分,将一个“列”值放在一个列表中,将第二个“列”放在另一个列表中。这样,我将能够使用所有第一个值来计算平均值/最小值/最大值,并且所有第二个值都可以用于单独的计算。
到目前为止,我只能实现将每一行拆分为单独的元素,如下所示:
['12.0,-4.5'], ['34.6,1.8'], ['12.7,2.8'], etc...
但我希望它是:
['12.0', '34.6', '12.7', etc...] and ['-4.5', '1.8', '2.8', etc...]
我的代码如下。我试图做足够的评论,但如果你需要进一步的解释(我怀疑)让我知道!
#import libraries to be used
import time
fileChoice = input("Enter the file name: ")
inputFile = open(fileChoice)
catTypes = inputFile.readline().strip('\n').split(',') #the headers of the file, taking away special characters
numOfHeadings = len(catTypes) #determining how many headers there are
print(catTypes) #printing the headers for future reference
rowCount = sum(1 for row in inputFile) #counting rows for later use
inputFile.close()
li = open(fileChoice) #opening file again for data collection
li.readline()
li = [entry.split() for entry in li] #creating list for every line in .csv file
print(li)
列表混乱的主要部分是最后四行,我将如何修改它以配合我的两个列表想法?
解决方案
拆分每一行,并附row[0]
加到一个列表,row[1]
到另一个列表。
import csv
mins = []
maxs = []
with open(fileChoice) as f:
f.readline() # Skip header line
csvin = csv.reader(f)
for row in csvin:
maxs.append(row[0])
mins.append(row[1])
推荐阅读
- pyspark - 在决策树分类器上拟合 RDD 数据时出错
- python - 从熊猫数据框中删除大量列
- objective-c - 为什么我会根据字符串构造或在不同环境中运行时获得不同的 NSString UTF-8 表示?
- c - 如何创建一个包含指向另一个未指定类型的结构的指针的结构?
- python-3.x - Tkinter Mac 应用程序无法正常工作
- android - 将聊天气泡对齐到 RecyclerView 的左侧
- javascript - 随机连接四个游戏,每列不放置第一个冰球
- javascript - ServiceWorkerRegistration#installing 重复访问的值?
- android - 如何将 YAML 样式文件加载到 HERE SDK Premium (Android)
- laravel - 如何从数组中删除空值以在 Laravel JSON 列中进行验证