2017-08-16 129 views
-3

我有一个数据框有15列,假设我只想要6个。 我正在执行聚合然后分组,但它引发错误。在熊猫中转换数据类型

def my_compute_function(my_input): 

    df=pd.DataFrame(my_input) 
    df2=df[(df['D'] == "Validated")] 
    df2[['A','E','F']]=df2[['A','E','F']].apply(pd.to_numeric) 
    df3=df2[['A','B','C','D','E','F']].groupby(['B','C','D']).agg({'A': 
    'max','E': 'max','F': 'max'}).reset_index() 

return df3  

所以我只想要6列A,B,C,D,E,F。
当我添加此行
df2 [['A','E','F']] = df2 [['A','E','F']]。apply(pd.to_numeric)
它引发ValueError错误:无法从空数据集中推断模式。

+1

您是否获得一个实际的压痕错误或其他错误?请[编辑]您的文章包括*完整的错误* –

+0

没有理由这应该给一个缩进错误。 – piRSquared

+0

IndentationError:意外缩进。我也检查了空间它的罚款,当我删除这条线我的代码工作正常。 – vatsal

回答

1

我想你可以从问题的行前的工作代码复制空格:

#some code before, copy whitespaces from starts of line to first letter 
    df = pd.read_csv(file) 
^^^^copy here 

    df[['A','B','C']]=df[['A','B','C']].apply(pd.to_numeric) 
^^^^paste here 
+0

仍然相同错误IndentationError:意外缩进。 – vatsal

+0

检查编辑答案 – jezrael

+0

当我分配这个数据框到另一个数据框然后我的代码执行正常,但然后它给错误 - 不能推断到一个空的数据集。 – vatsal

3

这应该工作。

df[['A', 'B', 'C']] = df[['A', 'B', 'C']].apply(pd.to_numeric) 

这将打破

# Ignore this comment, I needed SO to show a blank 
# line followed by code indented by a space 

df[['A', 'B', 'C']] = df[['A', 'B', 'C']].apply(pd.to_numeric)