[英]Python - string variable as list indexes
我有一個列表,例如fruitList = [Apple, Mango, Banana]
。 我有一個csv文件,其中包含一堆列,其中包括列表中的列。 例如:
Orange Apple Strawberry Banana
1 12 5 11
2 3 10 9
如何獲取一列csv(例如,香蕉)作為列表?
到目前為止我嘗試過的是:
data_file = open('fruit_data.csv')
data_reader = csv.reader(data_file, delimiter=",")
header = data_reader.next()
my_list = []
for field in header:
for fruits in fruitList:
if(fruits==field):
mylist = header[fruits]
我知道代碼的最后一行是錯誤的。 我想知道如何使用字符串變量作為列表索引在csv中獲取信息。
謝謝!
您可以采取以下步驟:
import csv
list= [tuple(row) for row in csv.reader(open(filename, 'rU'))]
上面的代碼將以以下形式獲取數據:
list = [('Orange', 'Apple', 'Strawberry', 'Banana'), (1, 12, 5, 11), (2, 3, 10, 9)]
您可以執行的下一步是:
new_list = [x[3] for x in list]
輸出:
new_list = ['Banana', 11, 9]
我希望這可以解決您的問題,如果不能,請告訴我。 我很樂意提供幫助!
和平//
Parthik Bhandari
例如
from collections import defaultdict
import csv
the_data = defaultdict(list)
with open("fruit_data.csv", "r") as fd:
reader = csv.DictReader(fd)
for row in reader:
for fruit, number in row.items():
the_data[fruit].append(number)
for fruit, the_list in the_data.items():
print fruit, the_list
O / P:
Orange ['1', '2']
Strawberry [' 5', ' 10']
Apple [' 12', ' 3']
Banana [' 11', ' 9']
我使用pandas的tolist()命令的貢獻:
import pandas as pd
data_file = pd.read_csv('fruit_data.csv')
# Creating data containers
fruitList = ['Apple', 'Mango', 'Banana']
names_columns = []
list_names = []
# Extracting the columns names from the imported cvs file
columns = list(data_file)
for i in columns:
names_columns.append(i)
# Getting the columns of the csv file as lists when the criteria is meet
for fruit in fruitList:
for name in names_columns:
if name==fruit:
list_names.append(name)
# Printing the desired lists
for name in list_names:
print(name, data_file[name].tolist())
Apple [12, 3]
Banana [11, 9]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.