我是新的python,Pandas和mariadb,我需要你的帮助和建议,请。我有一个csv文件,其中包含的数据与操作执行的每一天的一个月。我需要提取所有的值 然后将它们插入到数据库中。我曾想过将所有数据存储在一个DataFrame中,然后再迭代并将那天的数据存储在另一个DataFrame中,但我收到了以下警告:
The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
下面是我目前的代码:
import datetime as dt
import pandas as pd
data = pd.read_csv('./files/salesreport.csv',
names=['col_1', 'col_2', 'col_3', 'col_4', 'col_5', 'col_6',
'col_7', 'col_8', 'col_9', 'col_10'],
sep=',',
header=None,
keep_default_na=False,
na_values="")
df = pd.DataFrame(data)
pd.set_option('display.max_columns', None)
now = dt.datetime.now()
# today_date = now.strftime("%m-%d-%Y")
today_date = '07-17-2022' //i'm using this date for testing
tmp_df = pd.DataFrame()
for (index, row) in df.iterrows():
if row.col_1 == today_date:
tmp_df = tmp_df.append(row, ignore_index=True)
我认为如果文件太大,我的方法也会引起性能问题。您能帮我找到最好的解决方案,以便在数据库中只插入特定日期的记录吗?另外,您能告诉我使用MariaDB在数据库中插入记录的最好方法是什么吗?
谢谢你!
2条答案
按热度按时间fquxozlt1#
这听起来像一个简单的过滤器对我来说:
(and如果这很重要,您可以在后面加上
.reset_index()
)事实上,重复追加是一个缓慢的,对Pandas来说是一个糟糕的模型。
ycl3bljg2#
可以这样做
或转换为日期时间