Python 如何返回数据帧而不是序列
我创建了一个函数来处理数据处理,比如填充空值,但是函数的结果是返回一个序列,而不是给我一个数据帧。我如何解决这个问题Python 如何返回数据帧而不是序列,python,pandas,Python,Pandas,我创建了一个函数来处理数据处理,比如填充空值,但是函数的结果是返回一个序列,而不是给我一个数据帧。我如何解决这个问题 def preprocessing(df): df_columns = ['column1', 'column2','column3','column4', 'column5', 'column6','column7', 'column8'] features= [c for c in df.columns.values if c in df_colum
def preprocessing(df):
df_columns = ['column1', 'column2','column3','column4', 'column5', 'column6','column7', 'column8']
features= [c for c in df.columns.values if c in df_columns[0:2]]
df = df[features].notna()
features= [c for c in df.columns.values if c in df_columns[2:4]]
max = df[features].max()
df = df[features].fillna(max)
# Fill na with 0
features= [c for c in df.columns.values if c not in df_columns]
df = df[features].fillna(0)
return df
df = preprocessing(df)
df.isnull().sum()
我认为你需要改变,比如:
df = df[features].notna()
致:
仅处理列表中的列,并为所有代码分配回
这意味着:
def preprocessing(df):
df_columns = ['column1', 'column2','column3','column4',
'column5', 'column6','column7', 'column8']
features= [c for c in df.columns.values if c in df_columns[0:2]]
df[features] = df[features].notna()
features= [c for c in df.columns.values if c in df_columns[2:4]]
max1 = df[features].max()
df[features] = df[features].fillna(max1)
# Fill na with 0
features= [c for c in df.columns.values if c not in df_columns]
df[features] = df[features].fillna(0)
return df
df = preprocessing(df)
df.isnull().sum()
这回答了你的问题吗?使用
df[features]=df[features].notna()
仍返回series@ShadowWalker-所有代码都使用它吗?答案是按我的想法编辑的。我尝试了上面的代码,但仍然返回了一个系列。@ShadowWalker-你认为print(df.isnull().sum())
预期的series
还是print(df)
什么是DataFrame
?我的错,我用你的更改重新运行了代码,代码成功了。谢谢
def preprocessing(df):
df_columns = ['column1', 'column2','column3','column4',
'column5', 'column6','column7', 'column8']
features= [c for c in df.columns.values if c in df_columns[0:2]]
df[features] = df[features].notna()
features= [c for c in df.columns.values if c in df_columns[2:4]]
max1 = df[features].max()
df[features] = df[features].fillna(max1)
# Fill na with 0
features= [c for c in df.columns.values if c not in df_columns]
df[features] = df[features].fillna(0)
return df
df = preprocessing(df)
df.isnull().sum()