为了账号安全,请及时绑定邮箱和手机立即绑定

getitem错误

# coding = utf-8 #
from __future__ import division
import numpy as np
import pandas as pd
import scipy.stats
from scipy.stats import mode

df = pd.read_csv('train.csv')
label = df['TARGET']
df = df.drop(['ID', 'TARGET'], axis=1)

def fill_fre_top_5(x):
if(len(x))<=5:
new_array = np.null(5, np.nan)
new_array[0:len(x)] = x
return new_array

def eda_analysis( missSet = [np.nan, 9999999999, -999999], df = None):
df_eda_summary = eda_analysis(missSet=[np.nan, 9999999999, -999999], df=df.iloc[:, 0:3])
# 1Count #
count_un = df.apply(lambda x: len(x.unique()))
count_un = count_un.to_frame['count']
# 2Zero Values #
count_zero = df.apply(lambda x: np.sum(x == 0))
count_zero = count_zero.to_frame['count_zero']
# 3 Mean #
df_mean = df.apply(lambda x: np.mean(x[~np.isin(x, missSet)]))
df_mean = df_mean.to_frame['mean']
# 4 Median #
df_median = df.apply(lambda x: np.median(x[~np.isin(x, missSet)]))
df_median = df_median.to_frame['median']
# 5 Mode #
df_mode = df.apply(lambda x: scipy.stats.mode(x[~np.isin(x, missSet)])[0][0])
df_mode = df_mode.to_frame['mode']
#6 Mode Percentage#
df_mode_count = df.apply(lambda x: scipy.stats.mode(x[~np.isin(x, missSet)])[1][0])
df_mode_count = df_mode_count.to_frame['mode_count']
df_mode_perct = df_mode_count / df.shape[0]
df_mode_perct.columns = ['mode_perct']
#7 Min Value#
df_min = df.apply(lambda x: np.min(x[~np.isin(x, missSet)]))
df_min = df_min.to_frame['min']
#8 Max Value#
df_max = df.apply(lambda x: np.max(x[~np.isin(x, missSet)]))
df_max = df_min.to_frame['max']
#9 Quantile Values#
json_quantile = {}
for i, name in enumerate(df.columns):
json_quantile[name] = np.percentile(df[name][~np.isin(df[name], missSet)], (1, 5, 25, 50, 75, 95, 99))
df_quantile = pd.DataFrame(json_quantile)[df.columns].T
df_quantile.columns = ['quan01', 'quan05', 'quan25', 'quan50', 'quan75', 'quan95', 'quan99']
#10 5aa691090001441610000750.jpg
请问81行 直接带入数据为何出错

正在回答

3 回答

你好,

count_un = count_un.to_frame['count']

这里的count_un已经是pandas.series的类型了,没有必要再转成Frame的形式了。

我猜您是不是想为了后面的数据整合呢?是的话,其实可以直接合并pandas.series。

就以您的代码为例,可以这么写:

代码:

pd.concat([df_max,df_min],axis=1).T

结果:

    var3  var15  imp_ent_var16_ult1  imp_op_var39_comer_ult1  \
0  238.0  105.0            210000.0                 12888.03   
1    0.0    5.0                 0.0                     0.00

不知道有没有回答您的问题呢?

3 回复 有任何疑惑可以回复我~

就是出现一个按钮,点击后出现函数中的内容scopemodelDOMmodelview

0 回复 有任何疑惑可以回复我~

解决了,谢谢

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

getitem错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信