无法连接数据类型为f64和i64的极点数据帧.
我在Pandas 中有两个Pandas 数据帧df1,df2,其中df1中的列‘a’是Float,df2中的列是int,当我执行pd.conat([df1,df2])时,它起作用了.
然而,当我在极点数据帧上try 相同的操作时,它抛出以下错误:
Exceptions.ShapeError:无法虚拟堆栈,列"a"的数据类型不匹配:f64
和i64
Pandas 代码:
import pandas as pd
df1 = pd.DataFrame({'a': [1.0, 2.0, 3.0], 'b': [1, 2, 3]})
df2 = pd.DataFrame({'a': [1, 2, 3], 'b': [1, 2, 3]})
Pd.conat()生成以下输出:
pd.concat([pd_df1, pd_df2])
a b
0 1.00000000 1
1 2.00000000 2
2 3.00000000 3
0 1.00000000 1
1 2.00000000 2
2 3.00000000 3
极地代码:
import polars as pl
df1 = pl.DataFrame({'a': [1.0, 2.0, 3.0], 'b': [1, 2, 3]})
df2 = pl.DataFrame({'a': [1, 2, 3], 'b': [1, 2, 3]})
Pl.conat()产生了错误,这与Pandas 不同.
pl.concat([df1, df2])
Traceback (most recent call last):
File "C:\Users\user\.conda\envs\dev\lib\site-packages\IPython\core\interactiveshell.py", line 3362, in run_code
async def run_code(self, code_obj, result=None, *, async_=False):
File "<ipython-input-16-4301449ba376>", line 1, in <cell line: 1>
pl.concat([df1, df2])
File "C:\Users\user\.conda\envs\dev\lib\site-packages\polars\functions\eager.py", line 22, in concat
def concat(
exceptions.ShapeError: unable to vstack, dtypes for column "a" don't match: `f64` and `i64`
在这里,我从数据库中获取各种表的数据,并在连接它们之前创建一个数据帧列表.请帮助我提供一个解决方案,在这种情况下,我可以不对列名进行硬编码.