gpt4 book ai didi

python - Pandas read_sql 数据类型

转载 作者:行者123 更新时间:2023-12-04 13:46:26 36 4
gpt4 key购买 nike

我必须比较两个数据源以查看所有行中的相同记录是否相同。一个数据源来自 Excel 文件,另一个来自 SQL 表。我尝试使用 DataFrame.equals() 就像我过去一样。

然而,这个问题是由于讨厌的数据类型问题。尽管数据看起来相同,但数据类型正在使 excel_df.loc[excel_df['ID'] = 1].equals(sql_df.loc[sql_df['ID'] = 1])返回 False .这是来自 pd.read_excel() 的数据类型示例:

COLUMN ID                         int64
ANOTHER Id float64
SOME Date datetime64[ns]
Another Date datetime64[ns]

来自 pd.read_sql 的相同列:
COLUMN ID                        float64
ANOTHER Id float64
SOME Date object
Another Date object

我可以尝试使用 converters来自 pd.read_excel() 的争论匹配 SQL。或者也做 df['Column_Name] = df['Column_Name].astype(dtype_here)但我正在处理很多列。有没有更简单的方法来检查所有列的值?

检查 pd.read_sql() 没有像 converters 这样的东西但我正在寻找类似的东西:
df = pd.read_sql("Select * From Foo", con, dtypes = ({Column_name: str,
Column_name2:int}))

最佳答案

怎么样

excel_df = pd.read_excel(...)
sql_df = pd.read_sql(...)

# attempt to cast all columns of excel_df to the types of sql_df
excel_df.astype(sql_df.dtypes.to_dict()).equals(sql_df)

关于python - Pandas read_sql 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46594631/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com