我尝试使用for循环在多个CSV文件中输出数据,代码如下:
import numpy as np
# read multiple files
def show_datasets(filenames):
n = len(filenames)
data=[]
for i in range(0, n):
data = np.loadtxt(filenames[i], delimiter=',', dtype=float)
return data, i
print(show_datasets(['data1.csv', 'data2.csv', 'data3.csv']))
但是它只显示了第一个CSV文件的数据集,我认为循环在i=0结束,因为返回值显示了data1.csv的数据,然后是0,但我不明白为什么它不通过i = 1,i=2或显示CSV文件的其余数据?
我得到的是:
(array([[ 7.98631, 16.82952, 19.65165],
[ 7.1446 , 10.41674, 3.81853],
[ 7.48549, 14.61958, 8.87193],
[ 8.66521, 14.14244, 10.10248],
[14.80968, 12.82048, 13.41792]]), 0)
我想要的是:
(array([[ 7.98631, 16.82952, 19.65165],
[ 7.1446 , 10.41674, 3.81853],
[ 7.48549, 14.61958, 8.87193],
[ 8.66521, 14.14244, 10.10248],
[14.80968, 12.82048, 13.41792]]), 0)
(array([[ 12.65900,13.22477,8.94481],
[ 7.11298,1.99820,8.49168],
[ 0.25181,9.79979,13.62024],
[ 8.66521, 14.14244, 10.10248],
[1.98336,1.42358,9.92036]]), 1)
(array([[ 7.98631, 16.82952, 19.65165],
[ 14.12714,8.03384,15.76423],
[ 13.78446,8.92194,15.08250],
[ 15.79836,6.28136,7.43691],
[17.93699,0.01700,10.15189]]), 2)
2条答案
按热度按时间pgvzfuti1#
return
语句位于loop
中,这会导致函数exit
并返回列表中第一个CSV文件的数据。append
方法将每个加载的数据集添加到数据列表中。return
语句移到循环之外,以确保在返回最终结果之前加载所有数据集。mi7gmzs62#
return
语句中断loop
并退出函数。你的数据是一个在每个索引处包含数组的列表。Array的第一个元素将是csv文件数据,第二个元素将是索引。使用append函数将数据添加到
data
列表。