【问题标题】:Storing values in a CSV file into a list in python将CSV文件中的值存储到python中的列表中
【发布时间】:2017-10-26 22:21:56
【问题描述】:

我想创建一个列表来存储单个列的所有值。 例如,假设我的文件有一个名为“FirstNames”的列,前 3 行的“names”列包含 Merry、Pippin、Frodo。

我想创建一个类似于 [Merry, Pippin, Frodo] 的列表

我试过这样做:

import pandas as pd
data = pd.read_csv(".../TrainingFile.csv")
list = []
names = data['FirstNames']

for i in range(0,2):
    list.append(names[i:i+1])

print(list)

但是,该列表不仅将值存储在单元格中,还给我这样的输出:

姓名:名字,数据类型:object,1 Merry

姓名:名字,数据类型:对象,2 Pippin

姓名:名字,数据类型:对象,3 Frodo

我该如何改变呢?感谢您的帮助。

奖励:我如何定义范围而不是 range(0,2),以便它通过文件中的行数?

【问题讨论】:

  • 请修正for循环后的缩进。

标签: python excel list csv pandas


【解决方案1】:

请不要使用保留字如listtypeid...作为变量,因为会屏蔽内置函数。

如果稍后在代码中使用list,例如

list = data['FirstNames'].tolist()
#another solution for converting to list
list1 = list(data['SecondNames'])

得到非常奇怪的错误并且调试非常复杂。

所以需要:

L = data['FirstNames'].tolist()

或者:

L = list(data['FirstNames'])

也可以查看Is it safe to use the python word “type” in my code

【讨论】:

  • 我很快写了这段代码来问这个问题,但你是对的,请注意!非常感谢您的帮助。
  • 很高兴能帮上忙!经过几个小时的调试,我再也没有使用过这个保留字;(
  • 如果我的回答有帮助,别忘了accept。谢谢。
【解决方案2】:

因为您使用的是保留变量名。 不要使用 list,而是使用 list1 或其他名称作为变量名。

python中的保留变量名很少有:dict、str、list、int、pass等,我们误用了。尽量避免。

【讨论】:

    猜你喜欢
    • 2020-07-10
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2018-04-01
    • 2021-06-03
    • 1970-01-01
    相关资源
    最近更新 更多