我有一个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']]。应用(pd.to_numeric)
值得抛出的错误是ValueError:无法从空数据集中推断出架构。
答案 0 :(得分: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)
答案 1 :(得分: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