如何使用 pandas read_csv 创建循环?
我需要创建一个数据循环来列出并保存到数据库中。
如何使用 csv 中的数据执行此循环?
谢谢大家的关注
produtos = pd.read_csv('tabela.csv', delimiter=';')
for produto in produtos:
print(produto['NOME'])
如何使用 pandas read_csv 创建循环?
我需要创建一个数据循环来列出并保存到数据库中。
如何使用 csv 中的数据执行此循环?
谢谢大家的关注
produtos = pd.read_csv('tabela.csv', delimiter=';')
for produto in produtos:
print(produto['NOME'])
要在调用 pandas 产生的 DataFrame 中进行迭代,read_csv您应该使用命令iterrows()进行迭代,如下例所示:
for produto in produtos.iterrows():
print(produto['NOME'])
如果您有需要保存的文件,我建议您这样做
import os
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False)
path = "C:/path/to/directory"
# list all files in the directory, assuming this directory
# contains only files csv files that you need to save
for file in os.listdir(path):
df = pd.read_csv(path+file)
# some other data cleaning/manipulation
# write dataframe to database
df.to_sql("table_name", con=engine)
或者,您可以创建一个包含所有文件位置的列表,然后遍历该位置。有关to_sql()的更多信息并查看此答案
如果您可以按列名使用 Pandas 创建循环:
produtos = pd.read_csv('tabela.csv', delimiter=';')
for i, produto in produtos.iterrows():
print(produto['NOME'])
但是,如果您想直接在数据库中插入,请使用 sqlalchemy 和函数 to_sql,如下所示:
from sqlalchemy import create_engine
import pandas as pd
...
engine = create_engine("mysql://user:pwd@localhost/database")
produtos = pd.read_csv('tabela.csv', delimiter=';')
if_exists_do = 'append'
produtos.to_sql('table_name', con=engine, if_exists=if_exists_do)
然后它将被插入到数据库中。如果需要,var 'if_exists_do' 可以接收值 'replace'。