小编pyn*_*bee的帖子

使用 Python 将表从一个数据库复制到 SQL Server 中的另一个数据库

有人知道可以将大量表(大约 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)

python sql database sql-server pandas

6
推荐指数
2
解决办法
2万
查看次数

大熊猫的日期时间默认为1970

我在以正确的格式转换日期时遇到问题。

我有一个看起来像这样的列: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)

python datetime date datetime-format pandas

5
推荐指数
2
解决办法
1599
查看次数

CSV 导入到 Python 中的空格分隔符

我知道有很多关于 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)

python csv delimiter separator pandas

1
推荐指数
1
解决办法
7782
查看次数