Python for循环仅识别块的第一行

时间:2018-12-07 16:30:10

标签: python pandas for-loop anaconda spyder

我是Python的新手。我在Anaconda Spyder IDE中将python 3用于一个简单的机器学习项目。 我试图输入一个csv文件名,并使用for循环将它们分别添加到熊猫数据框中:

for i in range (var):
    name = input ('CSV file name: ')
    data = pd.read_csv (name)
    stocks = pd.DataFrame ({name: data ['Column name']})

问题是,for循环仅适用于第一行。接连输入文件名一次“ var”次,然后仅读取最后一个文件。 为什么for循环像这样工作?我想念什么?

1 个答案:

答案 0 :(得分:0)

您将在循环的每次迭代中创建一个新的数据框。相反,Pandas方法as recommended in the docs是从一系列可迭代数据中构造一个数据框:

d = {}
for i in range(var):
    name = input('CSV file name: ')
    data = pd.read_csv(name)
    d[name] = data['Column name']

stocks = pd.concat(d.values(), axis=1, keys=d)