use*_*251 1 python csv arrays list
说我有一个CSV文件.它包含:
a,b,c
1,2,3
4,5,6
7,8,9
Run Code Online (Sandbox Code Playgroud)
如何将标记为"a"的列转换为列表,而不对其进行硬编码?
最初,我正在为第一行做一个readline a,b,c,然后对每个变量进行硬编码.但后来我想:如果我想这样做可能会导致CSV文件没有以相同的方式排列 - 例如:
b,a,c
2,1,3
5,4,6
8,7,9
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
您可以使用pandas库执行此操作:
import pandas
data = pandas.read_csv("test.csv", header=0)
col_a = list(data.a)
col_b = list(data.b)
col_c = list(data.c)
Run Code Online (Sandbox Code Playgroud)
中的数值col_a,col_b并且col_c如下:
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]
Run Code Online (Sandbox Code Playgroud)
csv.DictReader将CSV文件的每一行转换为字典,并将列标题作为键.对于你的情况(假设你的问题的两个例子被命名为abc.csv和bac.csv分别),你可以使用它是这样的:
from csv import DictReader
with open("abc.csv") as f:
a1 = [row["a"] for row in DictReader(f)]
with open("bac.csv") as f:
a2 = [row["a"] for row in DictReader(f)]
# a1 == a2 == ['1', '4', '7']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17232 次 |
| 最近记录: |