我正在开发一个Python应用程序,并且正在与pandas rame合作.不幸的是,我有一个警告:

"不建议设置不兼容的dype项,并且会引发 Pandas 的future 版本中出现错误.值'[149.7 149.7 149.7]' dype与float 64不兼容,请显式转换为 首先兼容的dype.df1.loc [mp_idx_start:mp_idx_start + mp_idx-1, ' AuM ']=(feesPrefinancing. loc [:mp_idx-1,' Fees']+ feesspel延期. loc [:mp_idx-1,' Fees ']+ feesLTQDeferred. loc [:mp_idx-1,' Fees']). values '

这是我的代码:

df1['Date'] = pd.to_datetime(pd.date_range(simulationDate, end=feesLTQDeferred['Valuation date'].iloc[-1], freq='MS', inclusive='both').date)

df1['AuM'] = 0. 
df1.loc[4:7, 'AuM'] = (feesPrefinancing.loc[:3, 'Fees'] + feesMobiDeferred.loc[:3, 'Fees'] + feesLTQDeferred.loc[:3, 'Fees']).values
df1.loc[8:, 'AuM'] = (annuities['Invested annuity'].values + feesPrefinancing.loc[4:, 'Fees'].values + feesMobiDeferred.loc[4:, 'Fees'].values + feesLTQDeferred.loc[4:, 'Fees'].values)

正如您所猜的那样,我有一个日历,第一列是日期,第二列应该包含浮动数字.这就是为什么我用"0."值(这也是我在其他帖子中读到的解决这个错误的内容).不幸的是,即使用一些"astype"和其他类似的东西来划线,这个警告也不会消失.

以下是获得的结果,该结果是正确的,但我有警告:

         Date         AuM
0  2023-01-01    0.000000
1  2023-02-01    0.000000
2  2023-03-01    0.000000
3  2023-04-01    0.000000
4  2023-05-01    0.000000
5  2023-06-01    0.000000
6  2023-07-01    0.000000
7  2023-08-01    0.000000
8  2023-09-01  149.700000
9  2023-10-01  149.700000
10 2023-11-01  149.700000
11 2023-12-01  149.700000
12 2024-01-01 2475.800000
13 2024-02-01 2475.800000
14 2024-03-01 2475.800000
15 2024-04-01 2475.800000
16 2024-05-01 2475.800000
17 2024-06-01 2475.800000
18 2024-07-01 2475.800000
19 2024-08-01 2475.800000

您知道如何解决这个问题吗?

推荐答案

将不严格意义上的浮动数据类型分配给AuM,当用0.初始化时,该AuM被设置为浮动

将正确的数据类型分配给AuM:

import numpy as np
import pandas as pd
df1['Date'] = pd.to_datetime(pd.date_range(simulationDate, end=fees:TQDeferred['Valuation date'].iloc[-1], freq='MS', inclusive='both').date)
df1['AuM'] = 0.0
df1.loc[4:7, 'AuM'] = (feesPrefinancing.loc[:3, 'Fees'] + feesMoboDeferred.loc[:3, 'Fees'] + feesLTQDeferred.loc[:3, 'Fees']).astype(np.float64).values
df1.loc[8:, 'AuM'] = (annuities['Invested annuity'] + feesPrefinancing.loc[4:, 'Fees'] + feesMobiDeferred.loc[4:, 'Fees'] + feesLTQDeferred.loc[4:, 'Fees']).astype(np.float64).values
  1. Chech涉及的列的数据类型,并确保它们都是数字的.
  2. 确保它们都一致为float64

Python相关问答推荐

强制venv在bin而不是收件箱文件夹中创建虚拟环境

使用from_pandas将GeDataFrame转换为polars失败,ArrowType错误:未传递numpy. dype对象

在Pandas 日历中插入一行

如何自动抓取以下CSV

比较2 PD.数组的令人惊讶的结果

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

在Pandas DataFrame操作中用链接替换'方法的更有效方法

PMMLPipeline._ fit()需要2到3个位置参数,但给出了4个位置参数

将pandas Dataframe转换为3D numpy矩阵

使用setuptools pyproject.toml和自定义目录树构建PyPi包

Python+线程\TrocessPoolExecutor

python中字符串的条件替换

如何在Python中找到线性依赖mod 2

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

Django RawSQL注释字段

Gekko中基于时间的间隔约束

pandas:在操作pandora之后将pandora列转换为int

Pandas 数据帧中的枚举,不能在枚举列上执行GROUP BY吗?

解决Geopandas和Altair中的正图和投影问题

Polars定制函数返回多列