gpt4 book ai didi

python - pandas 数据框切片的乘法

转载 作者:行者123 更新时间:2023-12-01 04:27:50 25 4
gpt4 key购买 nike

我有一个像这样的数据框:

  Year       A_annex    Arnston     Bachelor         Berg   
1955 1.625 0.940 NaN NaN
1956 1.219 1.018 NaN NaN
1957 2.090 1.20 NaN 1.190
1958 0.950 1.345 NaN 1.090

我想将 [1:,1:] 中的所有内容乘以 .404

我正在尝试的代码是:

df=pd.read_csv(r'H:\Sheyenne\Grazing Records\Master_AMU_complete.csv')
hectare=0.404
df=df.iloc[1:,1:]
df=df*hectare

但这会返回:

TypeError: Could not operate 0.404686 with block values can't multiply sequence by non-int of type 'float'

打印 df.info() 表示切片之后的所有内容都是非空对象(如果有帮助的话)。

最佳答案

是的,这是一个有问题的值。您可以通过函数找到这些有问题的值(感谢 ajcr):

df = df.convert_objects(convert_numeric=True) 

首先将 NaN 转换为 0,然后应用上面的函数,它返回 NaN 而不是有问题的值。因此,您必须找到具有 NaN 值的行并返回原始 df 的子集。

print df
Year A_annex Arnston Bachelor Berg
0 1955 1.625 0.940 NaN NaN
1 1956 1.219 1.018 NaN NaN
2 1957 2.090 1.20a NaN 1.19
3 1958 0.950 1.345a NaN 1.09

test = df.fillna(0)
test = test.convert_objects(convert_numeric=True)

Year A_annex Arnston Bachelor Berg
0 1955 1.625 0.940 0 0.00
1 1956 1.219 1.018 0 0.00
2 1957 2.090 NaN 0 1.19
3 1958 0.950 NaN 0 1.09

test = df[test.isnull().any(axis=1)]

Year A_annex Arnston Bachelor Berg
2 1957 2.09 1.20a NaN 1.19
3 1958 0.95 1.345a NaN 1.09

hectare=0.404
df=df.iloc[1:,1:]
df=df*hectare
print df

关于python - pandas 数据框切片的乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32853702/

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