我正在尝试将多个csv文件导入字典。我的想法是,key是csv文件的名称,每个key的值都是csv中的表作为数据帧类型
我的代码如下:
import pandas as pd
data = '.././data/raw/'
all_files = [data + 'x.csv', data + 'y.csv']
list_a = []
result_dict = dict()
for filename in all_files:
df = pd.read_csv(filename, index_col=None, header=0, encoding='mac_roman')
key = filename.split('/')[1]
result_dict[key]=df
# print(result_dict)
def get_dataframe(name):
dataframe = result_dict.get(name)
return dataframe
m_taiin =get_dataframe('x.csv')
type(m_taiin)
print(isinstance(m_taiin,pd.DataFrame))
但当我在Macbook-Python3.7和Ubuntu 16.04上运行这段代码时,Python3.6的结果是真的
但是当我在ArchLinux-Python3.7上运行时,我的结果是错误的。该值为非类型而不是数据帧
我不知道这里的问题是什么
为了避免
split
的跨平台问题,我建议您在os.sep
上拆分,这是依赖于操作系统的文件分隔符另外,我建议您使用
glob
库来列出文件夹中的.csv
文件,并使用字典理解来创建dict也就是说,您可以实现您的目标,即拥有一个字典,其中键是文件名,值是实际的数据帧,如下所示:
当然,要注意在数据文件夹中只有想要的
.csv
,而不是其他的,因为glob.glob
将列出所有的.csv
像这样在for循环中尝试
相关问题 更多 >
编程相关推荐