在把这个问题标记为重复问题之前,请阅读整个帖子。我知道this帖子有一个类似的问题,但我要找的是不同的。在
我有一个文件名列表:
files = ['first.csv', 'second.csv', 'third.csv']
我想在大熊猫圈里读它们。我希望为循环中的每个迭代创建一个不同的数据帧:
^{pr2}$但在一个循环里。比如:
for i in range(len(files)):
csv = re.split('.', files[i])[0]
csv = pd.read_csv(files[i])
重要信息:每个csv都有不同的行和列。所以我不想读这三个csv,把它们和pd.concat
组合成一个。我想分开读。在
我试着把它们读入一个列表:
dataframe_list = [pd.read_csv(file_name) for file_name in files]
但这引发了下一个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 59: invalid start byte
你可以这样做:
然后可以调用
dataframe_list[0]
来获取第一个数据帧,依此类推。您可能希望使用字典,而不是键作为所需的数据帧标签。在快速提示:构造
for i in range(0, len(files))
,然后只关心files[i]
是丑陋的。files
是一个列表,因此可以使用for file in files
对其进行迭代。在相关问题 更多 >
编程相关推荐