有人知道可以将大量表(大约 100 个表)从一个数据库复制到 SQL Server 中的另一个数据库的好的 Python 代码吗?
我问是否有办法在 Python 中做到这一点,因为由于我工作地点的限制,我无法单独在 SQL Server 内部跨数据库复制表。
这是一个简单的 Python 代码,它将一个表从一个数据库复制到另一个数据库。我想知道如果我想复制 100 个表是否有更好的方法来编写它。
print('Initializing...')
import pandas as pd
import sqlalchemy
import pyodbc
db1 = sqlalchemy.create_engine("mssql+pyodbc://user:password@db_one")
db2 = sqlalchemy.create_engine("mssql+pyodbc://user:password@db_two")
print('Writing...')
query = '''SELECT * FROM [dbo].[test_table]'''
df = pd.read_sql(query, db1)
df.to_sql('test_table', db2, schema='dbo', index=False, if_exists='replace')
print('(1) [test_table] copied.')
Run Code Online (Sandbox Code Playgroud) 我在以正确的格式转换日期时遇到问题。
我有一个看起来像这样的列:20130525,存储为int64。
我正在尝试将其设置为日期,但出现问题。
我写了一个看起来像这样的函数:
def reformat_dates(df):
df['column'] = pd.to_datetime(df['column'], format = "%Y-%m-%d")
return df
Run Code Online (Sandbox Code Playgroud)
但是,当我执行该函数时,最终出现了这样的一列:
1970-01-01 00:00:00.020130525
Run Code Online (Sandbox Code Playgroud)
我的函数是否存在某种错误,使其以这种方式默认设置?我希望格式是
2013-05-25
Run Code Online (Sandbox Code Playgroud) 我知道有很多关于 CSV 文件中的空格分隔符的问题。
我有一个似乎用空格分隔的 CSV 文件。导入 Python 时,我尝试了所有代码以将空格标识为分隔符。但是,我不断收到错误消息。例如:
test_filepath = 'test_data.csv'
with codecs.open(test_filepath, "r", "Shift-JIS", "ignore") as file: # import UTF8 based csv file
test_df = pd.read_table( file, delim_whitespace=True )
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
EmptyDataError: No columns to parse from file
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时:
test_filepath = 'test_data.csv'
with codecs.open(test_filepath, "r", "Shift-JIS", "ignore") as file: # import UTF8 based csv file
test_df = pd.read_table( file, delimiter=" " )
Run Code Online (Sandbox Code Playgroud)
它给出了同样的错误。
当我尝试这个时:
test_filepath = 'test_data.csv'
with codecs.open(test_filepath, "r", "Shift-JIS", "ignore") as file: # import UTF8 based csv file …Run Code Online (Sandbox Code Playgroud)