首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态读取CSV文件

问动态读取CSV文件
EN

Stack Overflow用户
提问于 2020-01-19 05:00:28
回答 2查看 548关注 0票数 1

如何在Python中动态读取CSV文件,何时更改后缀名称文件?

示例:

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

发布于 2020-01-19 05:19:59

您有两个主要问题:

  1. {n} =是无效语法。您无法在不处理locals或globals的情况下为变量名赋值。这样做几乎总是一个坏主意,因为以编程方式访问硬编码的名称要困难得多。如果名称列表是动态的,那么您需要开始访问globals()来获取它们,这导致bugs.
  2. 'Basico_{n}.csv'遗漏了fstring中的f。如果未通过前缀f.

将其指定为f字符串,则不会将n添加到字符串中

而是:

代码语言:javascript
复制
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)
票数 2
EN

Stack Overflow用户

发布于 2020-01-19 05:18:18

代码语言:javascript
复制
'Basico_{n}.csv'

将仅适用于python >= 3.6

试一试

{n} = pd.read_csv('Basico_{}.csv'.format(n), encoding='latin1', sep=';', header=0)

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59804784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档