如何解决下面的代码中“ axis”属性如何工作?
此代码是用Python编写的。 Pandas数据框名称是“火车”,数据框中的列名称是“ Age”(带有浮动值),“ Pclass”带有一些类别编号。
代码:
请找到以下代码:
import React from 'react';
import { Image } from 'react-native';
const Dipole2 = props => {
let pic = {
uri: 'https://dipolepattern.azurewebsites.net/api/HttpTrigger1'
};
return (
<Image source={pic} style={{width: 193,height: 110,marginTop:50}}/>
);
}
export default Dipole2;
def impute_age(cols):
Age = cols[0]
Pclass = cols[1]
if pd.isnull(Age):
if Pclass == 1:
return 37
elif Pclass == 2:
return 29
else:
return 24
else:
return Age
此处“年龄”列正变为NAN。我不明白axis列的工作方式,“ Age”列中的所有记录都变成NAN。
解决方法
如果您寻找熊猫轴,那么Google中会有很多信息。
Axis代表您也要指向的轴,其中0是行,而1是列。因此,在此示例中,您在Age和P类列的行上使用impute_age函数。
,这是您将函数应用在列而不是行中的原因。
示例:
data = pd.DataFrame([[np.NaN,1],[np.NaN,2],1]],columns=["age","pclass"])
print(data)
输出
age pclass
0 NaN 1
1 NaN 2
2 NaN 1
轴= 0
data[['age','pclass']].apply(print,axis=0)
输出
0 None
1 None
2 None
Name: age,dtype: object
0 1
1 2
2 1
Name: pclass,dtype: object
//Iterate through columns
轴= 1
data[['age',axis=1)
输出
age None
pclass 1
Name: 0,dtype: object
age None
pclass 2
Name: 1,dtype: object
age None
pclass 1
Name: 2,dtype: object
//Iterate through the row
,
axis属性意味着您在该轴上沿应用功能
column1 column2
+-------+---------+
row1 | | | ----> axis1
+-------+---------+
row2 | | |
+-------+---------+
|
V
axis 0
如果您考虑以下功能:
def sum(cols):
s = 0
for i in cols:
s +=i
return s
并将其应用于数据框df:
total_sum = df.apply(sum,axis = 0)
它将占据第一列,并沿上图中的箭头方向(轴0)逐行应用该功能。 接下来,将进入下一个column2,依此类推。最后,您将获得每一列的总和。
对于轴= 1,它将进入row1并逐列应用该功能。 然后将需要row2,依此类推。 结果,您将获得每一行的总和。
在轴等于0的示例中,它将列“ Age”作为系列传递给impute_age函数。然后,您仅访问该系列的前两个值(行)(cols [0]和cols [1])。 下一列也是如此。那不是你想要的。
相反,您想将每一行传递给函数并访问列,因此必须指定axis = 1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。