我有一个包含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: can not infer schema from empty dataset
引发错误。 最佳答案
对我来说,它运行良好,只需要.copy
:
df = pd.DataFrame({
'D':['Validated','Validated','a'],
'E':['4','8','8'],
'A':['4','5','8'],
'F':['4','9','8'],
'B':['a','a','r'],
'C':['b','b','b']})
df2=df[(df['D'] == "Validated")].copy()
print (df2)
A B C D E F
0 4 a b Validated 4 4
1 5 a b Validated 8 9
#for replace ',' to '.'
df2[['A','E','F']]=df2[['A','E','F']].replace(',','.', regex=True).apply(pd.to_numeric)
df3=df2.groupby(['B','C','D']).agg({'A':'max','E': 'max','F': 'max'}).reset_index()
print (df3)
B C D A F E
0 a b Validated 5 9 8
关于python - Pandas 中的ValueError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45748723/