如何在Python中动态读取CSV文件,何时更改后缀名称文件?
示例:
import pandas as pd
uf = ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP1', 'SP2', 'SE', 'TO']
for n in uf:
{n} = pd.read_csv('Basico_{n}.csv', encoding='latin1', sep=';', header=0){}不会被识别为"for-loop“。
我想读取列表项中不同的文件后缀名,并按相同的规则创建不同的DataFrames。
发布于 2020-01-19 05:19:59
您有两个主要问题:
{n} =是无效语法。您无法在不处理locals或globals的情况下为变量名赋值。这样做几乎总是一个坏主意,因为以编程方式访问硬编码的名称要困难得多。如果名称列表是动态的,那么您需要开始访问globals()来获取它们,这导致bugs.'Basico_{n}.csv'遗漏了fstring中的f。如果未通过前缀f.将其指定为f字符串,则不会将n添加到字符串中
而是:
import pandas as pd
uf = ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP1', 'SP2', 'SE', 'TO']
dfs = {} # Create a dict to store the names
for n in uf:
dfs[n] = pd.read_csv(f'Basico_{n}.csv', encoding='latin1', sep=';', header=0)发布于 2020-01-19 05:18:18
'Basico_{n}.csv'将仅适用于python >= 3.6
试一试
{n} = pd.read_csv('Basico_{}.csv'.format(n), encoding='latin1', sep=';', header=0)
https://stackoverflow.com/questions/59804784
复制相似问题