在本文中,我们将为您详细介绍将python的相关知识,并且为您解答关于pandas数据框写入SQL数据库错误的疑问,此外,我们还会提供一些关于Pandas数据框python中的SQL查询、pandas
在本文中,我们将为您详细介绍将python的相关知识,并且为您解答关于pandas数据框写入SQL数据库错误的疑问,此外,我们还会提供一些关于Pandas 数据框 python 中的 SQL 查询、pandas将数据框写入其他PostgreSQL模式、Pandas(Python)-使用条件从另一个更新数据框的列、Python Pandas使用NaN值写入sql的有用信息。
本文目录一览:- 将python(pandas)数据框写入SQL数据库错误(pandas 写入数据库)
- Pandas 数据框 python 中的 SQL 查询
- pandas将数据框写入其他PostgreSQL模式
- Pandas(Python)-使用条件从另一个更新数据框的列
- Python Pandas使用NaN值写入sql
将python(pandas)数据框写入SQL数据库错误(pandas 写入数据库)
我正在尝试将python数据框放入MS SQL DB中,并且出现以下错误
功能
def put_to_server(df): # df is a pandas data frame
server="KORNBSVM04\MSSQLSERVER2012"
Driver="{SQL Server}"
userid=''
pswd=''
cnxn = pyodbc.connect(driver=Driver,server=server,database="CIHOTLINE",uid=userid,pwd=pswd)
cur=cnxn.cursor()
df.to_sql(name='dbo.test',con=cnxn)
错误
File "C:\Python27\lib\site-packages\pandas\core\generic.py",line 950,in to_sql
index_label=index_label)
File "C:\Python27\lib\site-packages\pandas\io\sql.py",line 475,line 1084,line 543,in __init__
if self.pd_sql.has_table(self.name):
File "C:\Python27\lib\site-packages\pandas\io\sql.py",line 1094,in has_table
return len(self.execute(query).fetchall()) > 0
File "C:\Python27\lib\site-packages\pandas\io\sql.py",line 1041,in execute
raise_with_traceback(ex)
File "C:\Python27\lib\site-packages\pandas\io\sql.py",line 1030,in execute
cur.execute(*args)
pandas.io.sql.DatabaseError: Execution failed on sql: SELECT name FROM sqlite_master WHERE type='table' AND name='dbo.test';
Pandas 数据框 python 中的 SQL 查询
如何解决Pandas 数据框 python 中的 SQL 查询?
我想在 Pandas 数据帧上执行此 sql 脚本,以获取 premoteid 在不同的 cremoteid 中出现的次数。
SELECT count(distinct cremoteid),sr.premoteid
FROM sales_ranking sr
JOIN storesales_hourly sh ON sh.premoteid = sr.premoteid
group by sr.premoteid
我试过了:
df.groupby([''premoteid'']).unique()["cremoteid"].count()
但我收到此错误:
''DataFrameGroupBy'' object has no attribute ''unique''
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
pandas将数据框写入其他PostgreSQL模式
我正在尝试使用模式限定表将熊猫DataFrame写入PostgreSQL数据库。
我使用以下代码:
import pandas.io.sql as psql
from sqlalchemy import create_engine
engine = create_engine(r'postgresql://some:user@host/db')
c = engine.connect()
conn = c.connection
df = psql.read_sql("SELECT * FROM xxx",con=conn)
df.to_sql('a_schema.test',engine)
conn.close()
发生的情况是,大熊猫在名为“ a_schema.test”的表中以“公共”模式编写,而不是在“ a_schema”模式中的“ test”表中编写。
如何指示熊猫使用与公共模式不同的模式?
谢谢
Pandas(Python)-使用条件从另一个更新数据框的列
我遇到问题,找到了解决方案,但我觉得这是错误的方法。也许,有一种更“规范”的方式来做到这一点。
问题
我有两个要合并的数据框,而没有多余的列,也没有擦除现有的信息。范例:
现有数据框(df)
A A2 B0 1 4 01 2 5 1
要合并的数据框(df2)
A A2 B0 1 4 21 3 5 2
我想更新df
与df2
是否列“A”和“A2”相对应。结果将是(:
A A2 B0 1 4 2.0 <= Update value ONLY1 2 5 1.0
这是我的解决方案,但我认为这不是一个很好的解决方案。
import pandas as pddf = pd.DataFrame([[1,4,0],[2,5,1]],columns=[''A'',''A2'',''B''])df2 = pd.DataFrame([[1,4,2],[3,5,2]],columns=[''A'',''A2'',''B''])df = df.merge(df2,on=[''A'', ''A2''],how=''left'')df[''B_y''].fillna(0, inplace=True)df[''B''] = df[''B_x'']+df[''B_y'']df = df.drop([''B_x'',''B_y''], axis=1)print(df)
有谁有更好的方法吗?谢谢 !
答案1
小编典典是的,无需合并即可完成:
rows = (df[[''A'',''A2'']] == df2[[''A'',''A2'']]).all(axis=1)df.loc[rows,''B''] = df2.loc[rows,''B'']
Python Pandas使用NaN值写入sql
我正在尝试从ascii读取几百张表,然后将它们写入mySQL。使用Pandas似乎很容易,但是我遇到了一个对我来说没有意义的错误:
我有一个8列的数据框。这是列列表/索引:
metricDF.columnsIndex([u''FID'', u''TYPE'', u''CO'', u''CITY'', u''LINENO'', u''SUBLINE'', u''VALUE_010'', u''VALUE2_015''], dtype=object)
然后to_sql
,我使用追加数据到mySQL
metricDF.to_sql(con=con, name=seqFile, if_exists=''append'', flavor=''mysql'')
我收到关于列为“ nan”的奇怪错误:
OperationalError: (1054, "Unknown column ''nan'' in ''field list''")
如您所见,我所有的列都有名称。我意识到mysql / sql对编写的支持出现在开发中,所以也许这是原因?如果是这样,是否可以解决?任何建议将不胜感激。
答案1
小编典典更新 :从pandas
0.15开始,to_sql
支持写入NaN
值(它们将NULL
在数据库中写入),因此不再需要下面描述的解决方法(请参阅https://github.com/pydata/pandas/pull/8208)。
熊猫0.15将于10月发布,并且该功能已合并到开发版本中。
这可能是由于NaN
你的表值,这是目前该大熊猫SQL函数不处理的NaN以及一个已知的缺点(https://github.com/pydata/pandas/issues/2754,HTTPS:/
/github.com/pydata/pandas/issues/4199)
作为目前的一种解决方法(对于0.14.1及更低版本的熊猫),您可以使用以下方法将nan
值手动转换为None:
df2 = df.astype(object).where(pd.notnull(df), None)
然后将数据帧写入sql。但是,这会将所有列转换为对象dtype。因此,您必须基于原始数据框创建数据库表。例如,如果您的第一行不包含NaN
s:
df[:1].to_sql(''table_name'', con)df2[1:].to_sql(''table_name'', con, if_exists=''append'')
我们今天的关于将python和pandas数据框写入SQL数据库错误的分享就到这里,谢谢您的阅读,如果想了解更多关于Pandas 数据框 python 中的 SQL 查询、pandas将数据框写入其他PostgreSQL模式、Pandas(Python)-使用条件从另一个更新数据框的列、Python Pandas使用NaN值写入sql的相关信息,可以在本站进行搜索。
本文标签: