【发布时间】:2020-04-13 12:16:34
【问题描述】:
我有一个如下所示的 CSV 文件
Item,Price,Calories,Category
Orange,1.99,60,Fruit
Cereal,3.99,110,Box Food
Ice Cream,6.95,200,Dessert
...
我想以这种格式形成一个 Python 字典:
{'Orange': (1.99, 60, 'Fruit'), 'Cereal': (3.99, 110, 'Box Food'), ... }
我想确保删除列的标题(即不包括第一行)。
这是我迄今为止尝试过的:
reader = csv.reader(open('storedata.csv'))
for row in reader:
# only needed if empty lines in input
if not row:
continue
key = row[0]
x = float(row[1])
y = int(row[2])
z = row[3]
result[key] = x, y, z
print(result)
但是,当我这样做时,我得到一个ValueError: could not convert string to float: 'Price',我不知道如何解决它。 我想将这三个值保存在一个元组中。
谢谢!
【问题讨论】:
-
这个错误的意思是在价格列中。有些行包含类似字符串。向我们展示
reader的样本数据。如果这是dataframe,您可以在阅读器上使用.info()方法吗? -
@PandasJ 我刚刚将其转换为 pandas DataFrame。这是信息:
<class 'pandas.core.frame.DataFrame'> RangeIndex: 4 entries, 0 to 3 Data columns (total 4 columns): 0 4 non-null object 1 4 non-null object 2 4 non-null object 3 4 non-null object dtypes: object(4) memory usage: 256.0+ bytes
标签: python python-3.x dictionary tuples