数据框中的数据类型不兼容

问题描述 投票:0回答:1

我正在开发一个 python 应用程序,并且正在使用 pandas 数据框。不幸的是,我有这个警告:

“设置不兼容的数据类型的项目已被弃用,并且会在 pandas 的未来版本中引发错误。值 '[149.7 149.7 149.7 149.7]' 的数据类型与 float64 不兼容,请首先显式转换为兼容的数据类型。 df1.loc[tmp_idx_start:tmp_idx_start+tmp_idx-1, 'AuM'] = (feesPrefinancing.loc[:tmp_idx-1, '费用'] + FeesMobiDeferred.loc[:tmp_idx-1, '费用'] + FeesLTQDeferred.loc[ :tmp_idx-1, '费用']).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”和其他类似的东西来投射线条,这个警告也不会消失。

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

python pandas dataframe types
1个回答
0
投票

您将非严格浮点数的数据类型分配给

AuM
,在使用
0.

初始化时设置为浮点数

将正确的数据类型分配给

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. 检查演算中涉及的列的数据类型,并确保它们都是数字。
  2. 确保它们都一致
    float64
© www.soinside.com 2019 - 2024. All rights reserved.