无法连接数据类型为f64和i64的极点数据帧.

我在Pandas 中有两个Pandas 数据帧df1,df2,其中df1中的列‘a’是Float,df2中的列是int,当我执行pd.conat([df1,df2])时,它起作用了.

然而,当我在极点数据帧上try 相同的操作时,它抛出以下错误: Exceptions.ShapeError:无法虚拟堆栈,列"a"的数据类型不匹配:f64i64

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`

在这里,我从数据库中获取各种表的数据,并在连接它们之前创建一个数据帧列表.请帮助我提供一个解决方案,在这种情况下,我可以不对列名进行硬编码.

推荐答案

你可以使用vertical_relaxed策略.

pl.concat([df1, df2], how="vertical_relaxed")
shape: (6, 2)
┌─────┬─────┐
│ a   ┆ b   │
│ --- ┆ --- │
│ f64 ┆ i64 │
╞═════╪═════╡
│ 1.0 ┆ 1   │
│ 2.0 ┆ 2   │
│ 3.0 ┆ 3   │
│ 1.0 ┆ 1   │
│ 2.0 ┆ 2   │
│ 3.0 ┆ 3   │
└─────┴─────┘

Python相关问答推荐

我必须将Sigmoid函数与r2值的两种类型的数据集(每种6个数据集)进行匹配,然后绘制匹配函数的求导.我会犯错

Python会扔掉未使用的表情吗?

使用Keras的线性回归参数估计

线性模型PanelOLS和statmodels OLS之间的区别

我在使用fill_between()将最大和最小带应用到我的图表中时遇到问题

try 在树叶 map 上应用覆盖磁贴

ModuleNotFound错误:没有名为Crypto Windows 11、Python 3.11.6的模块

沿着数组中的轴计算真实条目

如何将Docker内部运行的mariadb与主机上Docker外部运行的Python脚本连接起来

在np数组上实现无重叠的二维滑动窗口

如何保持服务器发送的事件连接活动?

在单次扫描中创建列表

如何找出Pandas 图中的连续空值(NaN)?

根据客户端是否正在传输响应来更改基于Flask的API的行为

如何合并具有相同元素的 torch 矩阵的行?

为什么Visual Studio Code说我的代码在使用Pandas concat函数后无法访问?

Django抛出重复的键值违反唯一约束错误

PYTHON中的selenium不会打开 chromium URL

Numpy`astype(Int)`给出`np.int64`而不是`int`-怎么办?

#将多条一维曲线计算成其二维数组(图像)表示